我的mongodb集合中目前有2个文档。他们是:
"_id": "5b6c7109c21dfe2a4b557b1e",
"title": "Childish Gambino",
"datetime": "2018-09-16T00:00:00.000Z",
"venue": {
"name": "Madison Square Garden",
"city": "New York",
"state": "NY"
"_id": "5b6c7109c21dfe2a4b557b1d",
}
和
"_id": "5b6c71133acdbe2a4e51615d",
"title": "The Eagles",
"datetime": "2018-09-12T00:00:00.000Z",
"venue": {
"name": "Madison Square Garden",
"city": "New York",
"state": "NY"
"_id": "5b6c71133acdbe2a4e51615c",
}
尽管这是两个不同的音乐会,但都在麦迪逊广场花园举行。但是,在2个文档中,麦迪逊广场花园有2个不同的“ _id”属性。有什么方法可以使它们具有相同的_id,还是每次添加在Madison Square Garden上发生的文档时都必须手动输入相同的_id?通常认为手动输入_id是可以的做法吗? mongodb的新手,所以将不胜感激。谢谢!
答案 0 :(得分:0)
如果您使用的是MongoDB 3.4版及更高版本,则可以使用$lookup
,这意味着您可以在架构中向实际的reference
添加一个Madison Square Garden
(我假设它位于另一个集合中) )。这样,您的数据可能看起来像这样:
"_id": ObjectId('5b6c71133acdbe2a4e51615d'),
"title": "The Eagles",
"datetime": "2018-09-12T00:00:00.000Z",
"venueId": ObjectId('5b6c71133acdbe2a4e51615c')
您将可以使用$lookup feature交叉引用该场所。
注意:这绝对比嵌入数据更有效,但是它为您提供了一个参考_id。