Привет всем,
Я работаю над проектом и использую MongoDB в качестве базы данных.У меня есть 2 коллекции, как указано ниже:
комментарии
[{
"_id":1,
"name":"testname1",
"email":"testmail1",
"user_id":1
},
{
"_id":2,
"name":"testname1",
"email":"testmail1",
"user_id":1
},
{
"_id":3,
"name":"testname1",
"email":"testmail1",
"user_id":2
},
{
"_id":4,
"name":"testname1",
"email":"testmail1",
"user_id":2
},
{
"_id":5,
"name":"testname1",
"email":"testmail1",
"user_id":2
}]
и пользователи
[{
"_id":1,
"name":"testname1",
"email":"testmail1",
},
{
"_id":2,
"name":"testname1",
"email":"testmail1",
},
]
Я хочу получить результат в следующем формате:
[{
"_id":1,
"name":"testname1",
"email":"testmail1",
"comment_ids":[1, 2]
},
{
"_id":2,
"name":"testname1",
"email":"testmail1",
"comment_ids":[3,4,5]
}]
Тезисы - тестовые коллекции. Я не хочу менять структуру своей коллекции.Кто-нибудь может мне помочь, как я могу достичь желаемого результата.Я попытался следующий запрос:
db.users.aggregate([{
$lookup:
{
from: "comments",
localField: "_id",
foreignField: "user_id",
as: "data"
}
}
])
Результат запроса:
{
"_id" : 1,
"name" : "testname1",
"email" : "testmail1",
"data" : [
{
"_id" : 1,
"msg" : "test",
"email" : "testmail1",
"user_id" : 1
},
{
"_id" : 2,
"msg" : "test",
"email" : "testmail1",
"user_id" : 1
}
]
}
{
"_id" : 2,
"name" : "testname1",
"email" : "testmail1",
"data" : [
{
"_id" : 3,
"msg" : "test",
"email" : "testmail1",
"user_id" : 2
},
{
"_id" : 4,
"msg" : "test",
"email" : "testmail1",
"user_id" : 2
},
{
"_id" : 5,
"msg" : "test",
"email" : "testmail1",
"user_id" : 2
}
]
}