我的MongoDB集合包含了83,000多个从.csv文件导入的文档。模式是一个简单的非嵌套模式。每个文档都有一个String类型的“coordinates”字段,如下所示
coordinates: "61.11736,-149.86379"
我想更新/替换它们的所有值,如下所示:coordinates: [61.11736, -149.86379]
,因为我想使用MongoDB $near查询选择器,因为它只适用于type: 'Point'
和<field_name>: [<long>, <lat>]
的字段。
我应该运行什么样的查询来执行这个更新?(我使用的是Node.js/Express)。提前感谢。
我基本上想做一个查询,它将获得指定坐标集附近的位置(MonogoDB文档):[long,lat]但是我不能这样做。
1条答案
按热度按时间u59ebvdq1#
您可以使用聚合管道执行更新,以将字段转换为GeoJson点对象。
Mongo Playground
然后,您可以在字段坐标上创建二维球体索引,以执行所需的
$near
查询。请注意,在创建2dsphere索引时,交换坐标以解决潜在的“经度/纬度超出界限”错误。
参考:https://database.guide/fix-longitude-latitude-is-out-of-bounds-in-mongodb-when-creating-a-2dsphere-index/