【发布时间】:2018-04-15 20:39:24
【问题描述】:
如何使用 mongoose 在 NodeJS 中的两个位置之间获取记录。我正在使用函数来查找具有类似函数的记录,
getAllEvent: function (locationReq, callback) {
Events.find({
location: {
$near: {
$geometry: {
loc: locationReq
},
$maxDistance: 0,
$minDistance: 250
}
}
}, {isDeleted: false}, function (error, data) {
callback((error) ? {} : (data == null) ? {} : data);
});
},
此函数返回空值。
特定记录的位置也存储在数据库文档的集合中。在 LocationReq 中将发送两个位置值。如果记录在这两个位置之间,我想要记录。
数据库文件如下,
{
"_id" : ObjectId("59db3a1e56e60915086fb73f"),
"eventName" : "5643213246",
"createdId" : "599d698ffa23343efe9c5cbb",
"eventDateTime" : ISODate("2017-08-09T00:00:00.000Z"),
"startTime" : ISODate("2017-08-16T13:01:52.379Z"),
"endTime" : ISODate("2017-08-16T13:01:52.379Z"),
"location" : {
"lat" : "59.9500",
"lng" : "30.3300"
},
"description" : "description123",
"category" : "59db12dab928f105a87348f6",
"host" : "host",
"phoneNumber" : 123123,
"isDisabled" : false,
"isDeleted" : true,
"dateCreated" : ISODate("2017-10-09T08:58:06.687Z"),
"__v" : 0,
"updatedAt" : ISODate("2017-10-24T06:47:07.966Z")
}
【问题讨论】:
-
定义“之间”。
$near按“最近”搜索,如果那是您真正的意思。无论如何,您的值是“字符串”,它们必须是数字。它们真的不应该是“键”,最好存储为 GeoJSON。如果您的意思是“附近”,您还需要一个“2dpshere”索引。所以有一些问题,通常有点不清楚你在问什么。 -
locationReq 是什么,能发一下吗?
-
这将是另一个有两个纬度的位置字段
-
请您发布 locationReq 的值吗?
-
LocationReq = {[25.9783, 75.6104] , [59.9500, 30.3300]}
标签: node.js mongodb reactjs mongoose