2016-08-30 1 views
0

私の文書には、次のようになります。

{ 
    "_id" : ObjectId("579f205f20754ea8cc58e22e"), 
    "date" : ISODate("2016-08-01T10:11:00.000Z"), 
    "httpRequestData" : {"charset" : "null", "encoding" : "gzip, deflate"}, 
    "status" : "normalized" 
} 

と私は好きそれを照会する:いくつかの列を選択し、「ステータスおよび日付範囲」を指定する「場所」条項を適用します。

ので:

db.fingerprint.find({"status" : {"$ne" : "deprecated"}}, 
        { "date": 1, 'httpRequestData.ipAdress': 1}, 
        {"date" : { $gte : new ISODate("2016-08-30") }}) 

しかし、それは私が述べた1より前の日付からレコードを示す、私が欲しい時間帯を選択していないようです。

私は間違っていますか?

答えて

1

日付範囲クエリを間違って配置しています。ステータスクエリと同じドキュメント/オブジェクトに配置する必要があります。つまり、

db.fingerprint.find(
    { 
     "status": { "$ne": "deprecated" }, 
     "date": { "$gte": new ISODate("2016-08-30") } 
    }, 
    { "date": 1, "httpRequestData.ipAdress": 1 }, 
) 
関連する問題