【发布时间】:2023-03-15 14:58:01
【问题描述】:
我使用$geoWithin 表示圆圈,但我没有得到预期的结果。有两个集合,一个用于users,第二个用于items。我正在为项目设置半径和坐标。所以我必须在那个坐标和半径内找到一个用户。
用户收藏
{
"_id" : NumberLong(25287),
"_class" : "com.samepinch.domain.user.User",
"name":"XYZ",
"location" : [
74.866247,
31.63336
]
}
物品集合
{
"_id" : NumberLong(46603),
"itemName" : "Chandigarh",
"categoryName" : "TRAVELLING",
"location" : {
"_id" : null,
"longitude" : 77.15319738236303,
"latitude" : 28.434568229025803,
"radius" : 29153.88048637637
}
}
根据物品坐标和用户坐标,两地之间的距离约为500公里。
查询
db.users.find({ location: { $geoWithin: { $center: [ [77.15319738236303,28.434568229025803], 29153.88048637637/3963.2] } } } ).count()
根据 $geoWithin,用户不应该显示,但它正在显示。如果我做错了什么,请帮助我。
谢谢
【问题讨论】:
标签: mongodb geolocation geospatial spring-data-mongodb