我想从第二个集合中获取数据,其id存储在第一个集合中。 例如,我有两个集合collectionA和collectionB。
在collectionA中我有这些数据:
{
"aid" : "afa6ad98adf5adf",
"cid" : "collectionBid132"
},
{
"aid" : "9sd5ds9ds5sd98",
"cid" : "collectionBid895"
},
{
"aid" : "a98asd4f6a7afd",
"cid" : "collectionBid654"
}
在collectionB中我有这些数据:
{
"cid" : "collectionBid132",
"cData" : "cDataBid132"
},
{
"cid" : "collectionBid895",
"cData" : "cDataBid895"
},
{
"cid" : "collectionBid654",
"cData" : "cDataBid654"
}
现在我希望获得"cData" from collectionB where cid = "collectionBid895" in collectionA
的价值。
如何使用聚合?
答案 0 :(得分:0)
您可以使用$lookup
。以下查询应该有效。
db.collectionA.aggregate([
{
$lookup:
{
from: "collectionB",
localField: "cid",
foreignField: "cid",
as: "collection_docs"
}
}
])
<强>输出: - 强>
查询输出类似于
{
"_id" : ObjectId("57f25931dd4752c20947fcfc"),
"aid" : "afa6ad98adf5adf",
"cid" : "collectionBid132",
"collection_docs" : [
{
"_id" : ObjectId("57f2593bdd4752c20947fcff"),
"cid" : "collectionBid132",
"cData" : "cDataBid132"
}
]
}