这是一个对象示例:
{
"_id" : "581994",
"type" : "Feature",
"geometry" : {
"type" : "Point",
"coordinates" : [
-149.0133,
64.7439
]
}
}
这是我执行的查询:
Earthquake
.find({
geometry: {
$near: {
$geometry: {
type: 'Point',
coordinates: [lon, lat]
}
}
}
})
.exec(function(err, results) {
if (err) {
console.log(err);
}
return reply(results);
})
这是我创建的模型架构:
var mongoose = require('mongoose');
mongoose.set('debug', true);
var Schema = mongoose.Schema;
var earthquakeSchema = new Schema({
geometry: {
type: String,
coordinates: [Number]
}
});
earthquakeSchema.index({
geometry: '2dsphere'
});
var Earthquake = mongoose.model('Earthquake', earthquakeSchema);
module.exports = Earthquake;
从我的角度来看似乎是正确的,但是当我执行它时,我总会得到同样的错误:
[Error: Can't use $near with String.]
我找不到错误在哪里。我到处检查了
答案 0 :(得分:1)
好的,我找到了解决方案:
我必须将对应于'Point'的默认字段添加到属性'type'。现在它可以工作