文件结构:
Mongoose Schema:
var mongoSchema = new Schema({
name: String,
description: String,
location: { lat: Number, long: Number },
images: [String],
blocks: { text: String, logo: String },
subLocations: {
name: String,
description: String,
location: {
lat: Number,
long: Number
},
images: [String]
}
});
以下查询不起作用:
mongooseModel.find().
where('location.lat').equals(18.710145).
exec(function(err, response) {
}
虽然此查询确实有效:
mongooseModel.find().
where('lat').equals("18.710145").
exec(function(err, response) {
}
任何指导?
答案 0 :(得分:0)
嵌套lat(location.lat)的数据类型是一个String(查看嵌入的图像,最右边的列)。这就是你的第一个查询不起作用的原因 - 你将一个数字与一个字符串进行比较。
答案 1 :(得分:0)
请尝试以下查询以查找结果。
db.myCollection.find( { $where: {"location":{"lat":"18.710145"}} } );