我在同一个数据库中有两个类似的集合,我试图使用$ lookup和聚合管道进行合并。它们用作匹配字段的_ids包含相同的值,但顺序不同:
Collection1:
{ "_id" : { "State" : "Vermont", "Race" : "Black American or African American" }, "Population" : 6456 }
Collection2:
{ "_id" : { "Race" : "Multiracial", "State" : "Arkansas" }, "Population" : 48996 }
我尝试按如下方式运行聚合管道:
db.Collection1.aggregate([{$lookup: {from: "Collection2", localField: "_id", foreignField: "_id", as: "Population"}}])
然而,当我这样做时,我得到:
{ "_id" : { "Race" : "Multiracial", "State" : "Arkansas" }, "Population" : [ ] }
我想获得数组中填充的值。我是MongoDB的新手。我对aggregate命令的语法有问题,还是因为'Race'和'State'在嵌入式文档_id中以不同的顺序列出而失败?值的顺序是否对嵌入文档的匹配很重要?
非常感谢你的时间,我感谢任何建议。