gpt4 book ai didi

mongodb - 在 $or 中运行多个 geo $near 查询

转载 作者:可可西里 更新时间:2023-11-01 09:57:19 26 4
gpt4 key购买 nike

在查询 mongodb 数据库时,是否可以在 $or 语句中执行多个地理查询,如 $near 或 $geoNear?

我总是收到错误“异常:$or 可能不包含‘特殊’查询”

经过一番谷歌搜索后,我发现了问题 https://jira.mongodb.org/browse/SERVER-3984已关闭并标记为“已修复”。

对我来说,运行多个地理查询时似乎仍然存在错误。这是我的测试代码:

db.entry.find({
$or: [
{
"address.geo": {
$near: {
$geometry : {
type : "Point" ,
coordinates : [ 9.7043 , 52.3019 ] },
$maxDistance : 50000
}
}
},
{
"address.geo": {
$near: {
$geometry : {
type : "Point" ,
coordinates : [ 9.6043 , 52.1019 ] },
$maxDistance : 50000
}
}
}
]
}).count();

这就是结果:

uncaught exception: count failed: {
"errmsg" : "exception: $or may not contain 'special' query",
"code" : 13291,
"ok" : 0
}

最佳答案

您不能在 $or 子句中使用 $near(或 $nearSphere):

$or and GeoSpatial Queries

Changed in version 2.6.

$or supports geospatial clauses with the following exception for the near clause (near clause includes $nearSphere and $near). $or cannot contain a near clause with any other clause.

但是,您可以在 $or 中使用其他地理空间子句,因此如果您可以重构查询以使用不同的地理空间运算符,您就可以使用 $or。

关于mongodb - 在 $or 中运行多个 geo $near 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24574470/

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