【发布时间】:2014-10-17 02:16:31
【问题描述】:
var latitude = 34
var longitude = -84
MyModel.find({
"$and": [
{ "expiry" : { "$gt" : Date.now() } }
,{ "area.min-lat" : { "$lte" : latitude } }
,{ "area.max-lat" : { "$gte" : latitude } }
,{ "area.min-long" : { "$lte" : longitude } }
,{ "area.max-long" : { "$gte" : longitude } }
]
},
function(err, matches){
if (!err) {
callback(matches, null)
} else { // there was an error
console.log(err);
callback(null, err);
}
});
执行没有失败,但继续不返回任何内容。我试过隔离到期和地图区域部分,但都不起作用。然而,如果我只是做一个find() 或将比较更改为 $ne,我会得到我的结果。
我正在尝试提取数据库中的一个对象进行测试...
"_id" : "543ee4e4e55422ab155f0a44",
"name" : "Test Location Space",
"img-url" : "http://s3.amazonaws.com/test/test/32098mfsnsdj09w.jpg",
"expiry" : "2016-01-17T08:42:12.586Z",
"area" : {
"min-lat" : 33,
"max-lat" : 35,
"min-long" : -85,
"max-long" : -83
}
【问题讨论】:
-
将问题隔离到
{ "area.max-lat" : { "$gte" : latitude } }和"expiry" : { "$gt" : Date.now() }