mongodb上的嵌套查询不起作用

时间:2017-09-19 18:15:57

标签: mongodb mongoose

文件结构:

enter image description here

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) {
}

任何指导?

2 个答案:

答案 0 :(得分:0)

嵌套lat(location.lat)的数据类型是一个String(查看嵌入的图像,最右边的列)。这就是你的第一个查询不起作用的原因 - 你将一个数字与一个字符串进行比较。

答案 1 :(得分:0)

请尝试以下查询以查找结果。

db.myCollection.find( { $where: {"location":{"lat":"18.710145"}} } );