java - 在 Java 中使用 MongoDB 中的日期范围进行查询

标签 java mongodb date

我刚开始使用 MongoDB。我把它装满了收据,例如:一张收据看起来像这样:

{ 
  "_id" : { 
          "$oid" : "510fa057c6f818c2bfd0b279"
          } ,

  "StoreName" : "Metro" ,
  "StoreNumber" : 521 , 
  "Items" : [ { 
               "ItemName" : "Battery" , 
               "ItemManufacturer" : "Duracell" ,
               "ItemPrice" : 12 ,
               "ItemQuantity" : 2 , 
               "ItemTotalPrice" : 24
              } , 

              { 
               "ItemName" : "TV CRT 25 inch" , 
               "ItemManufacturer" : "Toshiba" , 
               "ItemPrice" : 1659 , 
               "ItemQuantity" : 1 , 
               "ItemTotalPrice" : 1659
              } ,
              { 
                "ItemName" : "Mobile" , 
                "ItemManufacturer" : "Nokia" , 
                "ItemPrice" : 2966 , 
                "ItemQuantity" : 4 , 
                "ItemTotalPrice" : 11864
             }
          ] ,
  "Date" : {
            "$date" : "2012-06-16T01:21:11.758Z"
           } , 
  "Total" : 13547
}

我需要进行查询,在其中指定日期范围以获取该范围内的所有收据。我尝试了以下查询,但没有返回任何内容。

  BasicDBObject query = 
       new BasicDBObject(
           "Date", 
           new BasicDBObject(
               "$gt", 
               "2012-06-20T10:05:21.968Z"
           ).append(
               "$lte",
               "2012-09-24T05:29:43.031Z"
           )
       );

最佳答案

MongoDB 日期与 java.util.Date 结合使用。将您的查询更改为如下内容:

Date start = new java.util.Date(2012, 06, 20, 10, 05);
Date end = new java.util.Date(2012, 06, 20, 10, 30);

BasicDBObject query = new BasicDBObject("Date", 
    new BasicDBObject("$gt", start)).
            append("$lte", end) ));

关于java - 在 Java 中使用 MongoDB 中的日期范围进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14687499/

相关文章:

Mysql - 同一个表从另一列复制日期列但减少 3 天

date - 如何在Extjs中刷新当前时间

MongoDB 查询性能 : Return all vs select fields

node.js - 避免在 PUT 中使用 Mongo 和 Express 进行额外查询

java - 使用 AttributeSet 在不同颜色下划线 StyleConstant

java - 如何以编程方式获取应用程序的版本

Mongodb查找比较数组元素

Angular 5 按日期排序

java逐渐改变控件的颜色

java - 无法在工作流程 liferay 中查看 Assets