我们是Mongodb的新手,作为我们POC的一部分,我们将一堆文档摄入Mongo并测试不同的查询和投影选项以进行数据检索。 其中一个用例,我们试图在Mongo中过滤下面的示例文档并仅获取子文档。就像我们如何在关系数据库中获取数据一样。
示例输入。
{
"_id": "59036b0fa036cc28c8e07db6",
"sections": [{
"srcName": "test1",
"CompanyName": "ABC",
"sectorCode": "P",
"raw": false,
"data": [{
"srcKey": "",
"rowIdx": 0
},
{
"srcKey": "01",
"rowIdx": 1
}
]
}]
}
**desired output**
{
"_id" : ObjectId("59036b0fa036cc28c8e07db6"),
"sections" : [
{
"srcName" : "test1",
"CompanyName" : "ABC",
"sectorCode" : "P",
"raw" : false,
"data" : [
{
"srcKey" : "01",
"rowIdx" : 1
}
]
}
]
}
我在RoboMongo中使用的Shell命令是
1/db.getCollection('InsStatData').aggregate([
{"$project": {
"sections": {
"$filter": {
"input": "$sections", "as": "data", "cond": { "setIsSubset": [["$$data.rowIdx"], [1]] }}}}}])
2/ db.getCollection('InsStatData').aggregate({$match: {"sections.data.rowIdx": 1} })
请建议如何输出。