我有以下执行GEO多边形搜索的Mongoose查询:
Location.find({
"location.coordinates": {
"$geoWithin": {
"$geometry": {
"type": "Polygon",
"coordinates": [
coords
]
}
}
}
}, cb);
我现在希望限制包含"评级"的搜索结果。 property = 5,所以实际上是AND,即地理搜索和5的评级。
有人可以建议我如何构建查询以结合GEO搜索和评级属性吗?
答案 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)