如何使用aggregation-mongodb获取基于时间戳的值?

如何使用aggregation-mongodb获取基于时间戳的值?,mongodb,Mongodb,我有以下样品 mongodb文件 我想根据上面文档中请求数组中的currentVisit和lastVisit聚合uuid 我想使用uuid将普通查询转换为聚合 db.collection.find({"request.currentVisit":{$gte:"1384766024",$lte:"1384766024"}}); 任何帮助都将非常有用。请求字段是一个数组,因此没有请求。当前访问,请尝试以下操作: { request:{$elemMatch:{currentVisit:{$gte:

我有以下样品

mongodb文件 我想根据上面文档中请求数组中的currentVisit和lastVisit聚合uuid

我想使用uuid将普通查询转换为聚合

db.collection.find({"request.currentVisit":{$gte:"1384766024",$lte:"1384766024"}}); 

任何帮助都将非常有用。

请求字段是一个数组,因此没有请求。当前访问,请尝试以下操作:

{ request:{$elemMatch:{currentVisit:{$gte:"1384766024",$lte:"1384766024"}}} }

下面的聚合查询工作得很好

db.collection.aggregate({$unwind:"$request"},{$match:{"request.currentVisit":{$gte:"1384766024",$lte:"1384766024"}}},{$group:{_id:"$uuid"}});
台阶 将请求数组展开为普通文档

基于请求文档中的当前访问,使用$match匹配时间戳字段

使用uuid字段对文档进行分组


此选项仅返回第一个事件。如果有多个元素与$elemMatch条件匹配,运算符将返回数组中的第一个匹配元素。该元素表示匹配文档的数组请求中的元素。但我认为您需要选择许多文档,对吗?您可以使用request.currentVisit查找符合指定条件的文档。这种语法既适用于数组,也适用于子文档。你想做什么却不起作用?您说要聚合,但没有使用聚合。@wiredparie。我正在寻找聚合查询。现在我得到了查询,请检查编辑。正确的选择是回答您自己的问题。很明显,有一个被接受的答案。@wiredparie好的,谢谢。
db.collection.aggregate({$unwind:"$request"},{$match:{"request.currentVisit":{$gte:"1384766024",$lte:"1384766024"}}},{$group:{_id:"$uuid"}});