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 },
)
我的文档看起来像:
{
"_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 },
)