gpt4 book ai didi

json - mongo 2.6.4 中的多个 $near 不起作用

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

我收集了这样的文档:

{
...
"CurrentLocation" : {
"type" : "Point",
"coordinates" : [
-92.48436693078111,
35.85223020932276
]
}
...
}

我需要使用两个可能的中心点进行“$near”查询:

db.Truck.find({
"$or": [{
"DestinationLocation": {
"$near": {
"$geometry": {
"type": "Point",
"coordinates": [-117.256875, 41.856405]
},
"$maxDistance": 100000.0
}
}
}, {
"DestinationLocation": {
"$near": {
"$geometry": {
"type": "Point",
"coordinates": [-112.256875, 40.856405]
},
"$maxDistance": 100000.0
}
}
}]
})

Mongo 返回一个错误:

error:
{
"$err" : "Can't canonicalize query: BadValue Too many geoNear expressions",
"code" : 17287
}

除了应用端的data union,有没有办法用两点请求$near?谢谢。

最佳答案

Mongo DB 只接受一个 NEAR。如果有一个NEAR,它必须是根或根必须是一个 AND 并且它的 child 必须是一个 NEAR。参见 https://github.com/mongodb/mongo/blob/master/src/mongo/db/query/canonical_query.cpp#L364

如果您需要使用两个 $near 进行 $or 操作,请尝试进行两个查询并整合它们的结果。

关于json - mongo 2.6.4 中的多个 $near 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26329906/

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