Je souhaite combiner les données d'une collection en utilisant les ID des deux baies.Comment joindre des tableaux dans le même document?
Un exemple est illustré ci-dessous.
{
"_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"
}
]
}
Je veux rendre le document ci-dessus comme ci-dessous.
{
"_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",
}
]
}
J'ai essayé différentes choses comme $lookup
ou $unwind
de .aggregate()
mais je ne peux pas obtenir le résultat.
Avez-vous essayé ce liens ?? J'espère que cela aiderait, https://stackoverflow.com/questions/37086387/join-two-collections-on-mutiple-field-using-lookup et https://www.sitepoint.com/using-joins-in- mongodb-nosql-databases/ – Tehmina
@Tehmina Il ne devrait pas être nécessaire de "s'auto-joindre" entre les éléments d'un même document. Ce serait vraiment inefficace et il existe des moyens très efficaces de le faire, sans avoir besoin de «re-interroger» efficacement la collection. –