[英]Find a mongo subcollection by id
我需要有關此查詢的幫助。 我如何找到子集合?
收款客戶
db.clientes.find({
_id: ObjectId("587cc2d8704ae610d3741e6b")
}); {
"_id": ObjectId("587cc2d8704ae610d3741e6b"),
"razonSocial": "CREXELL",
"cuit": "20-12121212-0",
"vsat": [{
"CPA": 8682,
"IP": "149.126.35.61"
}, {
"CPA": 5500,
"IP": "149.126.36.109",
"_id": ObjectId("587cdb2af073f02a251361e8")
}, {
"CPA": 1234,
"IP": "1902312",
"_id": ObjectId("587d05fb930d504018ef8e01")
}],
"__v": 7
}
我需要得到像這樣的東西:
{
"CPA": 5500,
"IP": "149.126.36.109",
"_id": ObjectId("587cdb2af073f02a251361e8")
}
感謝:D
您可以使用聚合來實現此目的,但是您還需要知道子文檔數組中要查找的_id。
db.clientes.aggregate([
// Find the document matching the _id only
{ $match: { "_id": ObjectId("587cc2d8704ae610d3741e6b") } },
// Split all vsat array elements into separate documents
{ $unwind: "$vsat" },
// Match only the case where the _id matches 587cdb2af073f02a251361e8
{ $match: { "vsat._id": ObjectId("587cdb2af073f02a251361e8") } },
// Choose the elements we wish to return
{ $project: { "vsat": 1, "_id": 0 } }
])
結果是:
{
"vsat" : {
"CPA" : 5500,
"IP" : "149.126.36.109",
"_id" : ObjectId("587cdb2af073f02a251361e8")
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.