获取小于和大于的mongodb数组计数

时间:2017-03-25 06:39:53

标签: java mongodb

我试图在所有文档中获取数组计数,数组内容的日期比我给出的特定输入更少和更大。我在很多方面编辑了以下查询,但没有一个没有得到我预期的结果。

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

制作这个数组

1 个答案:

答案 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'}}}
)