我们有一个存储在MongoDB
中的文档,如下所示:
{
"id" : 1,
"name" : "demo-name",
"lastModified" : ISODate("2015-01-07T07:19:35Z"),
"snapshot" : {
"rows" : [
{
"quantity" : 100,
"rate" : 32,
"description" : "22MM SHROUDED PBA RED",
"productCatlgNo" : "3MA40 00 AA0"
},
{
"quantity" : 125,
"rate" : 32,
"description" : "22MM SHROUDED PBA BLACK",
"productCatlgNo" : "3MA40 01 AA0"
}
]
}
}
我正在尝试访问此文档,并使用以下查询仅读取snapshot.rows
报告设计器中JasperStudio
中存储的数据:
{
'collectionName' : 'views.abcdefghi',
'findQuery' : {
'name': 'demo-name'
},
'findFields':{
'snapshot.rows': 1
}
}
但是输出只包含snapshot.rows
,而我想要rows
中存在的文档的内部细节。
我应该怎么做?
答案 0 :(得分:0)
这可能是您的回答(基于此link)
}
runCommand:
{
aggregate : 'views.abcdefghi',
pipeline :
[
{$match : {"name" : "demo-name"}},
{$project : {"rows" : "$snapshot.rows" }},
]
}
}
在mongo shell中运行命令(在示例文档上)db.test.aggregate([ {$project : {"rows" : "$snapshot.rows"}} ]).result
之后我得到了这个结果(只有id和行):
{
"0" : {
"_id" : ObjectId("54b9017ec283f0c25c9cbf5e"),
"rows" : [
{
"quantity" : 100,
"rate" : 32,
"description" : "22MM SHROUDED PBA RED",
"productCatlgNo" : "3MA40 00 AA0"
},
{
"quantity" : 125,
"rate" : 32,
"description" : "22MM SHROUDED PBA BLACK",
"productCatlgNo" : "3MA40 01 AA0"
}
]
}
}