Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb聚合问题_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb聚合问题

Mongodb聚合问题,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有以下数据 数据: [ {u id: {年份:2014年, 不同的_id:'bbb'}, 天数:120}, {u id: {年份:2014年, 不同的_id:'ccc'}, 天数:120}, {u id: {年份:2014年, 不同的_id:'aaa'}, 天数:158}, {u id: {年份:2014年, 不同的_id:'aaa'}, 天数:161}, {u id: {年份:2014年, 不同的_id:'aaa'}, 天数:162}, {u id: {年份:2014年, 不同的_id:'a

我有以下数据

数据:

[
{u id:
{年份:2014年,
不同的_id:'bbb'},
天数:120},
{u id:
{年份:2014年,
不同的_id:'ccc'},
天数:120},
{u id:
{年份:2014年,
不同的_id:'aaa'},
天数:158},
{u id:
{年份:2014年,
不同的_id:'aaa'},
天数:161},
{u id:
{年份:2014年,
不同的_id:'aaa'},
天数:162},
{u id:
{年份:2014年,
不同的_id:'aaa'},
天数:163},
{u id:
{年份:2014年,
不同的_id:'ccc'},
天数:169}]
我的保证金值是160。我想做

1) 筛选天数小于边距值160({days:{$lt:160}})的数据运行此管道后,结果将是:

[
{u id:
{年份:2014年,
不同的_id:'bbb'},
天数:120},
{u id:
{年份:2014年,
不同的_id:'ccc'},
天数:120},
{u id:
{年份:2014年,
不同的_id:'aaa'},
天数:158}
]
2) 由于过滤数据为“aaa”、“bbb”,且天值大于160,因此下一个仅包含保留数据的管道不在前一个过滤数据中,因此结果仅为:

[
{u id:
{年份:2014年,
不同的_id:'bbb'},
天数:120}
]
在使用第一个结果后,我不知道如何执行第二个管道以仅获得不同的_id“bbb”。请帮忙

我的总结是:

[
{
$match:{
“天”:{
$lt:160
}
}
},
下一步是什么?
]

您的问题似乎缺少实际问题。他们当前的代码是否是您正在尝试但不知道下一步要做的?这部分意味着您正在执行的实际管道是否会将您带到“输入数据”阶段,或者您甚至只是询问如何过滤您的集合?您可以编辑/包含代码来明确这一点。我只需要修改一下。我的问题是在筛选了边距值为160的数据之后。如何编写第二个管道以返回只有“bbb”的不同_id的结果。发布您的代码。看起来你很可能一步就能做到这一点。但是我们需要你的代码来告诉我们。只需添加我的代码,它非常简单,只需过滤掉大于160的值。我不知道下一步是什么来获得期望值,即不同的id不在筛选项(aaa,ccc)中,它只返回我“bbb”,谢谢这是你唯一的代码吗?如果是这样的话,那就不是一个总体问题。至少看起来不像。但问题仍然很不清楚。你需要解释一下你所说的“只获取不同的“bbb”之类的术语的含义。这看起来很像你想要做的就是在两个
{“天”:{“$lt”:160},“distinct_id”:“bbb”}
上进行匹配,如果这是你的整个操作,那么只需使用
find()
。否则,请解释一下为什么这并没有得到你的结果。