2016-08-02 32 views
0

我正在搜索文檔2日期,如果我正在搜索一個月我收到結果,但是當我在2個不同的月份之間搜索時,我什麼也沒得到Mongodb在不同月份的日期之間搜索

db.dates.find({ 
    $and: [{ 
    "date": { 
     $gt: '18-07-2016' 
    } 
    }, { 
    "date": { 
     $lt: '25-01-2016' 
    } 
    }] 
}).pretty(); 

我得到的結果爲上述一個

db.dates.find({ 
     $and: [{ 
     "date": { 
      $gt: '18-07-2016' 
     } 
     }, { 
     "date": { 
      $lt: '02-08-2016' 
     } 
     }] 
    }).pretty(); 

沒有得到這一個

+0

你插入使用'新的Date()'?比較應該使用相同的,而不只是一個字符串。例如。 '{「date」:{$ gt:new Date(「2016-07-18」)}}' – Vineet

+4

我很驚訝,如何得到第一個結果'25 -01-2016'小於比18-07-2016 – Webdev

+0

使用ISODate或新的日期,那麼你將不會得到任何結果。嘗試這個。 – rroxysam

回答

1

而且,沒有必要使用$並且,你可以使用如下: -

db.dates.find(
           { 
            "created":{ 
               $lt:new Date("<date>"), 
               $gt:new Date("<date>") 
               } 
           }) 
0

嘗試以下

$start = new MongoDate(strtotime("18-07-2016")); 
$end = new MongoDate(strtotime("02-08-2016"));  
db.dates->find(array("date" => array('$gt' => $start, '$lte' => $end))); 
+0

我想你應該解釋你的答案。 – Shrabanee

+0

「date」:「01-08-2016」它保存在這個隊友 – Ankit

-1
Try: There are any query use default and operator. 
db.dates.find({"date":{$gt:new Date("<YYYY-mm-dd>"), $lt:new Date("<YYYY-mm-dd>")}}); 

代碼更多細節Click here

+2

你在回答之前是否閱讀過問題和評論? – Shrabanee

相關問題