MongoDB 查询中的 {$gte} 语句

{$gte} statement in MongoDB query

我的文档看起来像:

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

我想像这样查询它:select 一些列并应用一个 "where" 子句指定 "status and a date range".

所以:

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

但似乎select 不是我想要的时间范围,显示的是我指定日期之前的记录。

我做错了什么?

您输入的日期范围查询不正确;你应该把它放在与你的状态查询相同的document/object中,即

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