按 id 查找 mongo 个子集合
Find a mongo subcollection by id
我需要有关此查询的帮助。我怎样才能找到子集?
Collection 客户
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")
}
}
我需要有关此查询的帮助。我怎样才能找到子集?
Collection 客户
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")
}
}