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

Bra*_*ord 5 mongodb

我有一个商店列表,需要添加注释.这些注释需要有一个ID,以便可以编辑和删除它们 - 这适用于web应用,其中id参数将包含用于标识对象的字符串.我对MongoDB并不太熟悉,但是认为在地图中使用ObjectId作为关键字,这将是一个简单的解决方案.如果有更好的方法在MongoDB中执行此操作,请更正我.

无论如何,当我尝试使用(new ObjectId())作为键时,我在shell中得到"无效的属性id"错误.

db.locations.update({_id: 'store1'}, {$set: {'notes': {(new ObjectId()): 'note1'}}})
Run Code Online (Sandbox Code Playgroud)

我做错了什么想法?

Sco*_*dez 6

键在MongoDB中始终是字符串。要设置嵌套字段,必须将字符串连接在一起。

db.locations.update({_id: 'store1'}, {$set: {'notes.' + (new ObjectId()).toString(): 'note1'}})
Run Code Online (Sandbox Code Playgroud)