猫鼬 - 构建AND查询

时间:2014-11-10 04:36:46

标签: node.js mongodb mongoose

我有以下执行GEO多边形搜索的Mongoose查询:

Location.find({
    "location.coordinates": {
        "$geoWithin": {
            "$geometry": {
                "type": "Polygon",
                "coordinates": [
                    coords
                ]
            }
        }
    }
}, cb);

我现在希望限制包含"评级"的搜索结果。 property = 5,所以实际上是AND,即地理搜索和5的评级。

有人可以建议我如何构建查询以结合GEO搜索和评级属性吗?

2 个答案:

答案 0 :(得分:0)

我认为,假设评级字段位于文档的顶层,以下内容可实现您的目标

Location.find({
"$and" : [      
         {"location.coordinates": {
          "$geoWithin": {
           "$geometry": { "type": "Polygon","coordinates": [coords] } }
           }
         },
         {"ratings" : 5}
         ]

}, cb);

答案 1 :(得分:0)

感谢@NeilLunn和@bearrito的指导。我可以简单地将标准作为父标准:

    Location.find({
    "rating": 5,
    "location.coordinates": {
        "$geoWithin": {
            "$geometry": {
                "type": "Polygon",
                "coordinates": [
                    coords
                ]
            }
        }
    }
},cb)