gpt4 book ai didi

javascript - 在此上下文中不允许使用 mongoose $geoNear、$near 和 $nearSphere

转载 作者:行者123 更新时间:2023-12-02 22:22:20 25 4
gpt4 key购买 nike

这是我的架构:

const userSchema = mongoose.Schema({
coordinates: {
type: { type: String },
coordinates: [],
},
})

然后我添加这个:

userSchema.index({ coordinates: "2dsphere" });

我想找到半径内的所有坐标。这是我调用的方法:

router.post('/users/query', async(req,res)=>{
var pageOptions = {
page: req.body.page || 0,
limit: 10
}
const query ={ location: {
$near: {
$maxDistance: req.body.searchQuery.maxDistance,
$geometry: {
type: "Point",
coordinates: req.body.searchQuery.coordinates
}
}
}}
console.log(query)
User.find(query)
.skip(pageOptions.page*pageOptions.limit)
.limit(pageOptions.limit)
.exec(function (error, users) {
if(error) { res.status(500).json({error}); return; };
User.countDocuments(query).exec((error,total)=>{
if(error) {
res.status(500).json({error})
}else{
res.status(200).json({users,total});

};
})
})
})

我按照这篇文章中的方式做了:https://medium.com/@galford151/mongoose-geospatial-queries-with-near-59800b79c0f6

但我收到错误 $geoNear、$near 和 $nearSphere 在此上下文中不允许。有人知道为什么吗?

这是我的搜索查询:

{ searchQuery: 
{ coordinates: [ 9.993681899999956, 53.5510846 ],
maxDistance: 1000 } }

最佳答案

使用 count 方法而不是 countDocuments 方法

关于javascript - 在此上下文中不允许使用 mongoose $geoNear、$near 和 $nearSphere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59186475/

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