我只是想知道是否可以根据条件运行查询以仅抓取某个字段的某个部分。例如,我的数据集如下所示:
fprintf
我想运行如下的查询:
"Name":"John",
"History":[
{
"speed" : 5,
"type" : "walking"
},
{
"speed" : 6,
"type" : "walking"
},
{
"speed" : 7,
"type" : "walking"
}
]
会给我一个结果,只包含速度大于6的数据:
db.getCollection('membermodel').find({
"Name":"John"
}, {
"Name":"1",
"History":"1",
//specify field condition here
"History.speed":{$gt:6}
});
非常感谢您提前。 火星
答案 0 :(得分:3)
db.getCollection('test')。find({“Name”:“John”},{“Name”:1,“History”:{$ elemMatch:{“speed”:{$ gt:6} }}});
$ elemMatch运算符匹配包含数组字段的文档,其中至少有一个元素符合所有指定的查询条件。
答案 1 :(得分:0)
对于部分结果使用以下查询:
db.getCollection('test').find({"History.speed":7},{_id: 0, 'History.type.$': 1})
这将只提供那些将通过您的标准的历史对象。