gpt4 book ai didi

mongodb如何按距离过滤

转载 作者:可可西里 更新时间:2023-11-01 10:42:23 27 4
gpt4 key购买 nike

假设我有一个这样的用户集合:

{
"lastName": "Doe",
"firstName": "John",
...
"location": {
"country": "USA",
"city": "New York",
...
"lat": 123456,
"lon": 123456
}
}

我想按距离过滤我的收藏:返回 100 公里附近的所有用户。文档 $near 中有。但是找不到如何使用它。

我有这样一个例子:

db.users.find({
location: {
$near: [-73.9667, 40.78],
$maxDistance: 100000
}
});

所以我认为我的问题是如何告诉 mongo 他必须检查 user.location.latuser.location.lon 来计算距离。

最佳答案

使用您的数据集,您不能。

问题是您没有地理索引。您需要一个来进行地理搜索。

为了能够实现你想要的,你需要像这样重构你的数据集:

{
"lastName": "Doe",
"firstName": "John",
...
"location": {
"country": "USA",
"city": "New York",
...
"coords": [123456, 123456]
}
}

坐标数组是[latitude, longitude]。然后您需要在该字段上创建一个二维索引。

关于mongodb如何按距离过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655488/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com