【发布时间】:2014-03-10 03:24:53
【问题描述】:
假设我们有类似以下文档的内容,但我们只想返回包含数字信息的字段:
{
"_id" : ObjectId("52fac254f40ff600c10e56d4"),
"name" : "Mikey",
"list" : [ 1, 2, 3, 4, 5 ],
"people" : [ "Fred", "Barney", "Wilma", "Betty" ],
"status" : false,
"created" : ISODate("2014-02-12T00:37:40.534Z"),
"views" : 5
}
现在我知道我们可以使用$type 运算符来查询匹配特定类型的字段。但是我还没有偶然发现将 $project 作为字段值的方法。因此,如果我们查看“展开”形式的文档,您会看到:
{
"_id" : ObjectId("52fac254f40ff600c10e56d4"),
"name" : 2,
"list" : 16,
"people" : 2
"status" : 8,
"created" : 9,
"views" : 16
}
最终目标是仅列出匹配某种类型的字段,比方说比较以获取数字类型并过滤掉字段,经过多次文档修改,产生如下结果:
{
"_id" : ObjectId("52fac254f40ff600c10e56d4"),
"list" : [ 1, 2, 3, 4, 5 ],
"views" : 5
}
有没有人有办法处理这个问题。
【问题讨论】:
标签: mongodb mapreduce mongodb-query aggregation-framework