【发布时间】:2017-01-30 22:52:01
【问题描述】:
我的数据库中有以下文件:
{
id: ObjectId(...),
value1: 0,
value2: false
}, {
id: ObjectId(...),
value1: 0,
value2: true
}, {
id: ObjectId(...),
value1: 1,
value2: false
}, {
id: ObjectId(...),
value1: 1,
value2: false
}, {
id: ObjectId(...),
value1: 1,
value2: false
}
我想按 value1 对所有对象进行分组并找到那些没有 value2=true 的对象。
查看 value1=0 的对象。 可以看到存在一个value2=true的文档。
对于 value1=1,不存在 value2=true 的文档。
我想在没有 value2=true 的地方拥有所有这些 value1。
db.getCollection('collection').aggregate([
{$group: {_id: {'value1': '$value1', 'value2' : '$value2'}, count: {$sum:1}}},
{$match: {'_id.value2': true, count: {$eq: 0}}}
])
我试过了,但找不到任何东西。
因为我过滤掉了真实值。所以没有什么可计算的。
希望你能理解我并帮助我。
编辑 1 - 我想要的结果:
我想得到这样的东西:
{
value1: 0,
count: 1 // value1=0 has exactly 1 document with value2=true
}, {
value1: 1, // <-- Im just interested in this values which has the count of 0
count: 0 // <-- value1=1 has NO documents with value2=true
}
【问题讨论】:
-
不确定你想说什么,但如果你发布了你想要的结果,向你推荐解决方案会更容易。
-
对于一个特定的
value1有多个value2= true条目的文档呢?你也想要吗? -
它们也可以是结果的一部分,但我只需要它们与 no value2=true 文档
标签: mongodb