【问题标题】:Get records between two locations in NodeJS获取NodeJS中两个位置之间的记录
【发布时间】: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


【解决方案1】:
getAllEvent: function (locationReq, callback) {    
        Events.find({
        loc: {
             $nearSphere: {
                   $geometry: {type: "Point", coordinates: [lng, lat]},
                   $maxDistance:distance
                          }

    }, {isDeleted: false}, function (error, data) {
        callback((error) ? {} : (data == null) ? {} : data);
    });
    },

并将位置参数替换为loc

【讨论】:

    猜你喜欢
    • 2019-03-14
    • 1970-01-01
    • 2013-08-21
    • 2012-10-17
    • 2013-04-16
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多