我是Express / Node.JS / MongoDB的新手,并尝试编写一个简单的查找工具来制作地理空间查询。
我使用托管的MongoDB(MongoLab),构建了索引,当我在他们的在线命令工具中运行地理空间搜索查询时,我能够获得回报。
这是routes目录中的代码副本,该文件名为query.js:
var Db = require('mongodb').Db;
var express = require('express');
var router = express.Router();
router.get('/query', function(req, res) {
if (req.params) {
console.log(req.params);
var lon = parseFloat(req.query.longitude);
var lat = parseFloat(req.query.latitude);
Db.connect(process.env.MONGOLAB_URI, function (err, db) {
if (err) return console.dir(err);
db.collection('bfe_lines')
.find({
"near": [lon, lat],
"num": 1,
"spherical": true
}).toArray(function (err, docs) {
if (err) {
return console.dir(err)
}
else {
console.log(docs)
}
})
})
}
else {
res.send("no joy");
}
});
module.exports = router;
我回到命令行的响应如下所示:
GET / 304 14.003 ms - -
{}
GET /query?latitude=40.49973185600004&longitude=-88.99786877199995 500 5.683 ms - 534
感谢任何可以帮助我的人。