MongoDB查询中的{$ gte}语句

时间:2016-08-30 10:26:15

标签: mongodb where where-clause

我的文档如下:

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

我希望查询它:选择一些列并应用指定“状态和日期范围”的“where”子句。

所以:

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

但它似乎没有选择我想要的时间范围,显示我所说的日期之前的日期记录。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您正在错误地放置日期范围查询;你应该把它放在与你的状态查询相同的文件/对象中,即

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