gpt4 book ai didi

javascript - 带有 $near $ 或其他字段的 Mongoose 查询

转载 作者:行者123 更新时间:2023-11-30 15:21:11 26 4
gpt4 key购买 nike

我试图通过在不同字段上执行查询 $or 返回文档,包括有问题的 $near 查询。

架构

locationSchema{
...
beacon: String,
access_point: String,
gps: [],
...
}

locationSchema.index({ gps: '2dsphere' });

查询

locations.find({
'$or': [
{
gps: {
'$near': {
'$geometry': {
type: 'Point',
coordinates: [
13.1313131,
-4.444444
]
},
'$maxDistance': 50,
distanceField: 'distance',
spherical: true
}
}
},
{
access_point: '88:A6:BB:26:95:11'
},
{
access_point: '88:A6:C6:26:CC:21'
}
]
},
function(err,locations){
//DosomethingwithfoundLocations
});

如果我仅使用 $near 输入进行查询,则会按预期返回一个位置,如果我仅使用 access_point 列表进行查询' s 返回一个位置,但当两个查询同时运行时则不会。

我假设这是一个错误,但无论如何我可以让这种类型的查询正常工作吗?

谢谢

最佳答案

根据文档,这是不支持的。您可以阅读更多相关信息 HERE :

$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.

但是您可以使用 geoWithin并传入 center 运算符以实现相同的目标。请记住,geoWithin 不会对结果数组进行排序。

关于javascript - 带有 $near $ 或其他字段的 Mongoose 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43706704/

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