我有以下猫鼬模式:
const GroupSchema = mongoose.Schema({
...
gps: {
type: Object,
required: true
}
...
})
例如,一个gps对象看起来像这样: {经度:53,05,纬度:54.56}
我有他们当前gps位置的用户。他们可以搜索离他们最近的组。因此,他们可以搜索半径为10公里 我可以使用模块geolib来计算gps点是否在圆内:
geolib.isPointInCircle(
{latitude: 51.525, longitude: 7.4575},
{latitude: 51.5175, longitude: 7.4678},
10000
);
问题是,我的数据库中有很多组,并且每次搜索组时都不想全部加载。有没有办法在数据库的调用中已经包含此geolib函数,并且仅获取满足条件的该组。 也许是这样的吗?
Group.findOne({}, geolib.isPointInCircle(
usersGPS, gps, 5000), callback)
如果这不可能,您还有其他解决方案或建议吗?