gpt4 book ai didi

位置数组中的 MongoDb geoWithin

转载 作者:可可西里 更新时间:2023-11-01 09:31:08 25 4
gpt4 key购买 nike

我正在使用 meteor 查询 mongodb 集合。现在这是我的查询,其中 location 是一个 2dsphere 索引。

       messages.find({ 
location:
{
$geoWithin :{$centerSphere : [ [ longitude, latitude ] , radius ] }
}
});

如果“location”是一个 2dsphere 索引数组,我需要在这个查询中更改什么?/code> 对?

最佳答案

文档结构如下

{
"_id" : ObjectId("544e65dc0d86a53a8b32f7d0"),
"locs" : [
{
"loc" : {
"type" : "Point",
"coordinates" : [
-71.97,
43.77
]
}
},
{
"loc" : {
"type" : "Point",
"coordinates" : [
-63.97,
48.77
]
}
}
]
}

如果您使用

构建 2dsphere 索引
> db.test.ensureIndex({ "locs.loc" : "2dsphere })

然后你可以执行你想要的查询

> db.test.find({ 
"locs.loc" : {
"$geoWithin" : { "$centerSphere" : [ [ longitude, latitude ] , radius ] }
}
}

之所以可行,是因为数组的索引是多键的,并且将为文档的每个数组元素创建一个索引条目。

关于位置数组中的 MongoDb geoWithin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558097/

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