0
查询未示出:的MongoDB - 场骨料
db.environments.aggregate(
[{$match:{customer:"CustomerName"}},
{$group:{_id:{environment: "$environment",
cpu_oversubscription:"$cpu_oversubscription",
memory_oversubscription:"$memory_oversubscription"}}} ])
当运行该查询仅环境和CPU_oversubcription字段被示出,未示出的存储器领域。
这是输出我得到:
[{"_id":{"environment":"V&B","cpu_oversubscription":1}}
当我运行db.environments.find()
我看到所有的领域
[{"_id":{"environment":"V&B","cpu_oversubscription":1,"memory_oversubscription":1,"customer":"CustomerName"}}
什么是错我的查询?
编辑:精确查询
Environment.aggregate([{$match:{customer:req.query.customer}},{$group:{_id:{environment: "$environment",cpu_oversubscription:"$cpu_oversubscription",memory_oversubscription:"$memory_oversubscription",}}} ])
查询的精确结果
{ "_id" : { "environment" : "1", "cpu_oversubscription" : 1 } }
{ "_id" : { "environment" : "2", "cpu_oversubscription" : 4 } }
{ "_id" : { "environment" : "3", "cpu_oversubscription" : 4 } }
{ "_id" : { "environment" : "4", "cpu_oversubscription" : 4 } }
{ "_id" : { "environment" : "5", "cpu_oversubscription" : 4 } }
{ "_id" : { "environment" : "6", "cpu_oversubscription" : 1 } }
{ "_id" : { "environment" : "7", "cpu_oversubscription" : 1 } }
{ "_id" : { "environment" : "8", "cpu_oversubscription" : 1 } }
{ "_id" : { "environment" : "9", "cpu_oversubscription" : 4 } }
{ "_id" : { "environment" : "10", "cpu_oversubscription" : 4 } }
db.environments.find的精确结果()(仅第一结果)
{ "_id" : ObjectId("560a5139b56a71ea60890201"), "customer" : "CustomerName", "environment" : "1", "memory_oversubcription" : 1, "cpu_oversubscription" : 1 }
这里你的数据样本是否正确?一切都在'_id'之下,并且你的聚合中没有任何字段(看起来基于问题,然后由我自己回答)带有'_id'前缀,如同在{{$ group“:{”_id“:{”environment “:”$ _id.environment“}}}'。主要指出,这不是前面问题中提出的结构。所以我认为你在这篇文章中犯了一个错误。 –
该查询是正确的,但我没有看到它的重点,因为你最终没有对任何东西进行分组。如果你不使用任何这些操作符:http://docs.mongodb.org/manual/reference/operator/aggregation/group/#accumulator-operator,一个简单的查找可以做我认为的诡计。 –
为什么显示cpu_oversubcription,但memory_oversubscription不? – CMS