MongoDB - 我可以使用 ObjectId 作为键吗?

我有一个商店列表,需要向它们添加注释。这些笔记需要有一个 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 框架?

javascript - 获取集合和子文档中所有键的名称

node.js - 使用 winston-mongodb 和 express-winston 进行日

java - Mongo 将 Document 转换为 DBObject

node.js - 如何在没有回调的情况下返回 Mongoose 查询结果

mongodb - 要将一条记录与 MongoDB 中的另一条记录相关联,可以使用 slug 吗?

mongodb - Java MongoDB 驱动连接问题

javascript - UnhandledPromiseRejectionWarning 错误 :