如何获取MongoDB中具有相同纪元时间戳的所有记录?

时间:2018-03-04 17:17:19

标签: mongodb mongodb-query

我有一个具有以下结构的MongoDB集合:

_embedded: {
    rh:doc: [
        {
            somevalue1: {...},
            somevalue2: "garbage1"
            interesting_date: 1520121600
        },
        {
            somevalue1: {...},
            somevalue2: "garbage2"
            interesting_date: 1520121600
        },
        {
            somevalue1: {...},
            somevalue2: "garbage3"
            interesting_date: 1520121600
        },
        ...
    ]
}

如何使用MongoDB过滤器获取具有相同“interesting_date”值的所有记录?

这个集合是通过RESTHeart访问的,所以我必须通过JAVA中的http请求传递URI本身的过滤器。

如果这看起来很简单,请原谅我。我对应用程序端开发很新。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您只想查找具有相同日期的数据,那么您可以像这样执行查询..

db.user.find({ interesting_date: 1520121600 });

否则您可以使用$group作为前提。

db.user.aggregate(
[
  {
    $group : {
       _id : '$interesting_date' },

    }
  }
]);

或者您可以在$filter

时应用$project
db.user.aggregate([
{
  $project: {
     interesting_date: {
        $filter: {
           input: "$doc",
           as: "item",
           cond: { $eq: [ "$$item.interesting_date", 1520121600 ] }
        }
     }
  }
}
]);