У меня есть две разные коллекции на основе одного идентификатора коллекции для другого task_id. Я получаю оба результата хорошо, но хочу, чтобы родительская информация была дочерней, а дочерняя - родительской. Хорошо преобразовали дочернюю информацию в родительскую, используя $ replace Root, но не получая родительскую информацию как дочернюю.
Информация БД выглядит так: -
collectionA -
{
"_id" : ObjectId("5e537ae04c48b729ac9d4137"),
"oprtId" : "5e537ae04c48b729ac9d4136",
"ato_id" : "5e14271edff9960a75bb3e25",
"remarks" : "",
"status" : "Open",
"created_at" : ISODate("2020-02-24T07:27:28.355Z")
}
collectionB -
{
"_id" : ObjectId("5e537ae04c48b729ac9d4136"),
"userId" : "5df88264238ccf4dc1864a2d",
"title" : "test",
"description" : "my test",
"purpose" : "testing",
"action_taken" : "Fri Feb 27 2020 1:00:00 GMT+0530 (India Standard Time)",
"status" : [
"Open"
],
"created_at" : ISODate("2020-02-24T07:27:28.000Z")
}
--------- Запрос ---------
db.getCollection("collectionA").aggregate([
{$match:{ato_id: "5e14271edff9960a75bb3e25", }},
{ "$addFields": { "optId": { "$toObjectId": "$oprtId" }}},
{ $lookup :{
from: "collectionB",
localField: "optId",
foreignField: "_id",
as : "tempC"
}
},
{$unwind: '$tempC'},
{ $replaceRoot: { newRoot: "$tempC" } },
{$project : {
_id : 1,
userId : 1,
"assind":"collectionA information" // This information i need to get.
},
},
]).toArray()
Надеюсь получить его решено.
Спасибо.