2014-02-14 55 views
0

我遇到一些麻煩,下面的查詢:

documents() 
.find("{values: {$elemMatch: {name: #, value: #}}}", "Date", new DateTime() 
.withDate(2027, 6, 2) 
.withHourOfDay(18) 
.withMinuteOfHour(06) 
.withSecondOfMinute(40) 
.toDate()).as(Document.class); 

它不引發錯誤,但返回一個空列表。

但是,在控制檯上,它成功運行並向我顯示結果。

我在挖掘源代碼,發現實際上Date未被解析爲ISODate("yyyy-MM-ddTxxxxx"),而是被解析爲{$date: "yyyy-MM-ddTxxxxx"}

我不知道這是一個問題還是我明顯錯過了一些東西。如果有人能指出我正確的方向,請做。

PS:作爲參考,這裏是控制檯查詢:與JodaTime創建

db.documents.find({values: {$elemMatch: {"name": "Date", "value" : ISODate("2027-06-02T18:06:40Z")}}}) 
+0

您正在使用不同的日期。可能是這樣嗎? – joao

+0

這是一個錯字,謝謝 –

回答

0

日期不等於與ISODate創建的:ISODate( 「2027-06-02T18:06:40Z」 )

嘗試創建ISO日期時間如下:

new DateTime("2013-01-19T15:28:58.851Z"); 

見GitHub的問題更多信息:https://github.com/bguerout/jongo/issues/187