mongodb - MongoDb:$geoIntersects 用于多个输入坐标
问题描述
我有一个坐标列表,我需要执行$geoIntersects查询。对于一个坐标,查询如下所示:
db.polygons.find({
geometry: {
$geoIntersects: {
$geometry: {
type: "Point", coordinates: [24.053640, 49.812427]
}
}
}
})
问题是有一个输入坐标列表,我需要为每个坐标找到一个多边形。到目前为止,我发现的唯一方法是在应用程序代码中迭代它们并执行 N 次查询。
是否可以使用一个 MongoDB 查询来做到这一点?如果没有,任何关于如何优化的想法都值得赞赏。
解决方案
一种可能的解决方案是将 Point 几何类型替换为 MultiPoint 几何类型,并将输入坐标列表作为数组传递。
db.polygons.find({
geometry: {
$geoIntersects: {
$geometry: {
type: "MultiPoint", coordinates: [[24.053640, 49.812427],[...]...]
}
}
}
})
推荐阅读
- ruby-on-rails - 如何将用户对表单的响应保存到数据库
- git - 当我切换回无更改分支时,VS 会重建项目。如何跟踪构建文件但不推送它们?
- node.js - 在实时应用程序中使用 socket.io 接收数据
- javascript - 如何从另一个函数调用 Express 函数?
- asp.net-core-tag-helpers - 是否可以在不修改 _ViewImports.cshtml 文件的情况下覆盖自定义 TagHelper?
- python - 使用 randint 和 while 循环模拟掷骰子
- artifactory - Bintray 是否实现了 artifactory api?
- javascript - Array.reduce 和递归
- json - 配置 RabbitMQ 的环境变量
- python - 如何使用 python mailchimp3 库查询 Mailchimp API?