我试图在所有文档中获取数组计数,数组内容的日期比我给出的特定输入更少和更大。我在很多方面编辑了以下查询,但没有一个没有得到我预期的结果。
db.user_log.aggregate(
{$match: {"user_id" : "2"}},
{$unwind: "$meta_data.access_times"},
{$group: {_id: "$user_id", number: {$sum: 1 }}}
)
上面的查询给出了所有文档中给定user_id的数组计数总和。结果如下。
{
"_id" : "2",
"number" : 26.0
}
如何在上面的查询中使用gt和lt?
我的阵列 -
"access_times" : [
ISODate("2017-02-25T07:02:31.935Z"),
ISODate("2017-03-25T07:02:39.817Z")
],
我将为mongo终端和java
制作这个数组答案 0 :(得分:1)
Mongo终端查询
db.user_log.aggregate(
{$unwind: '$meta_data.access_times'},
{$match: {"user_id" : "2", "meta_data.access_times" : { $gt : ISODate("2017-03-23T00:00:00.000Z"), $lt : ISODate("2017-03-24T00:00:00.000Z")}}},
{$group: {_id: null, 'sum': { $sum: 1}}},
{$group: {_id: '$_id', total_sum: {'$sum': '$sum'}}}
)