2017-01-09 8 views
0

$eq演算子がcount()を使用しているときに正しく動作していません。等価演算子を使用するとカウントが正しく機能しない

> db.WebUser.find() 
{ "_id" : 6, "Country" : "In", "DOJ" : ISODate("2016-12-31T18:30:00Z") } 
{ "_id" : 7, "Country" : "In", "DOJ" : ISODate(**"2017-01-04T**18:30:00Z") } 
> db.WebUser.count({ DOJ: { $eq: new Date('**01/01/2017'**) } }) 
1 
> 

どのような提案ですか?

答えて

0

日付を指定している形式は、日付式がと評価されますworngされています。あなたはmonogoシェルでそれを試すことができます

d = new Date('01/01/2017') 
ISODate("2016-12-31T18:30:00Z") 

正しい形式は

db.WebUser.count({ DOJ: { $eq: new Date('2017-01-01') } }) 
0 
+0

パラメータにあなたの日付は 'ISODateである( "2017-01-04T00:00:00Z")'が、文書で 'ISODate(" 2017-01-04T18です。 30:00Z ")'。時間も考慮してください。あなたが日付に照会する必要がある場合は、[集合日演算子](https://docs.mongodb.com/manual/reference/operator/aggregation-date/)を使用します。 – ares

関連する問題