我正在尝试在Mongoose中执行简单的搜索,以使所有用户都位于查询用户的给定半径内。换句话说,一个用户登录后,我想获取20英里以内的所有用户,不包括查询用户。
我什至没有使用"Cannot read property 'forEach' of undefined"
时遇到一个奇怪的错误:forEach
。甚至更奇怪,查询也包含两个部分:_id
和loc
,当我分别执行每个查询时,它们会一起工作,但不会一起工作。
我的代码在下面,有人可以帮我了解发生了什么事吗?
app.post("/get_users", (req, res) => {
console.log("get users"); //
console.log("req.body :", req.body);
const miles = 20;
const meters = Math.floor(miles * 1609.34);
const loc = req.body.loc;
const userId = req.body.userId;
User.find({ loc: {
$near: {
$geometry: {
type: "Point" ,
coordinates: loc
},
$maxDistance: meters,
$minDistance: 0
}
},
_id: { $ne: mongoose.Types.ObjectId(userId) }
})
.then((users) => {
console.log("users : ", users); // <- not being written to console
return res.json({ users })
})
.catch((err) => {
console.log("Err : ", err);
return res.json({ error: "error" });
});
});