我有一个商店列表,需要向它们添加注释。这些笔记需要有一个 ID,以便可以编辑和删除它们——这适用于一个 id 参数将包含用于标识对象的字符串的 Web 应用程序。我对 MongoDB 不太熟悉,但认为将这些注释放在 map 中,以 ObjectId 为键,将是一个简单的解决方案。如果在 MongoDB 中有更好的方法,请纠正我。
无论如何,当我尝试使用 (new ObjectId()) 作为键时,我在 shell 中收到“invalid property id”错误。
db.locations.update({_id: 'store1'}, {$set: {'notes': {(new ObjectId()): 'note1'}}})
对我做错了什么有任何想法吗?
最佳答案
在 MongoDB 中,键始终是字符串。要设置嵌套字段,您必须将字符串连接在一起。
db.locations.update({_id: 'store1'}, {$set: {'notes.' + (new ObjectId()).toString(): 'note1'}})
https://stackoverflow.com/questions/4555228/
相关文章:
java - Spring MongoTemplate - 将聚合结果映射到集合(例如 List 和
mongodb - 使用 mongodb 聚合的多个字段的不同计数
mongodb - .NET 是否有与数据库无关的 nosql 框架?
node.js - 使用 winston-mongodb 和 express-winston 进行日
java - Mongo 将 Document 转换为 DBObject
node.js - 如何在没有回调的情况下返回 Mongoose 查询结果