【发布时间】:2019-10-24 18:33:20
【问题描述】:
我无法通过 mongoose 对我的 Mongo 集合运行 geoNear 查询。我的架构如下所示:[1]:https://imgur.com/kIPAHRV“架构”。这是我的索引的截图:[2]:https://imgur.com/DvyHxK5"indexes"。
var url = 'mongodb://*******';
MongoClient.connect(url, function(err, db) {
if(err) {
res.sendStatus(500)
} else {
if(db.places) {
console.log("Connected successfully to server");
var response = db.places.find({ coordinates : { $near : { $geometry : {
type : "Point" ,
coordinates : [req.query.lomg, req.query.lat] },
$maxDistance : 10000 /* 10 kms */
}
}
})
res.send(response)
}
res.sendStatus(500);
}
});
代码出错并总是转到 else 块,从而返回 500。
【问题讨论】:
-
首先,您在
if和else分支中都返回500 响应,基本上总是如此。其次var response是一个承诺。您需要提供回调来处理查询结果,或者等待 promise 被解决或拒绝。