我想使用两个数组的ID将数据合并到一个集合中。如何在同一文档中连接数组?
一个例子如下所示。
{
"_id": ObjectId ("5976fd2eb0adec0a32fa9831"),
"People": [
{
"_id": 1, <--- ID
"Name": "jane"
},
{
"_id": 2, <--- ID
"Name": "Mark"
}
],
"Contents": [
{
"userID": 2, <--- People ID
"Text": "111"
},
{
"userID": 1, <--- People ID
"Text": "Hi"
}
]
}
我想使上述文件如下。
{
"_id": ObjectId ("5976fd2eb0adec0a32fa9831"),
"People": [
{
"_id": 1,
"Name" : "Jane"
},
{
"_id": 2,
"Name": "Mark"
}
],
"Contents": [
{
"userID": 2,
"Name": "Mark", <-- Adding
"Text": "111",
},
{
"userID": 1,
"Name": "Jane", <-- Adding
"Text": "Hi",
}
]
}
我已经试过各种事情像$lookup
或.aggregate()
$unwind
,但我不能得到的结果。
你试过这个链接?我希望它会帮助,https://stackoverflow.com/questions/37086387/join-two-collections-on-mutiple-field-using-lookup和https://www.sitepoint.com/using-joins-in- mongodb-nosql-databases/ – Tehmina
@Tehmina应该不需要在同一文档中的项目之间进行“自联接”。这实际上效率低下,实际上有非常有效的方法来做到这一点,而不需要有效地“重新查询”集合。 –