【问题标题】:Store location data in Mongodb document在MongoDB文档中存储位置数据
【发布时间】:2020-01-24 11:27:21
【问题描述】:

在我当前的项目中,我将位置数据以以下格式存储在 Mongodb 文档中

"location" : {
        "loc" : {
            "lng" : -118.15592692,
            "lat" : 34.03566804
        },
        "geocode" : {
            "city" : "East Los Angeles",
            "state" : "CA",
            "zipcode" : "90022",
            "countrycode" : "US",
            "country" : "United States"
        }
    }

在 location.loc 字段上创建了一个二维索引:-

{
    "location.loc" : "2d"
}

但是当结果集很大(即超过 7000 条记录)时,地理空间查询需要很长时间。 在我看来,索引不起作用。是不是因为数据没有按格式存储:-

loc: [-118.15592692, 34.03566804]

请建议可以做些什么来提高性能?

【问题讨论】:

    标签: mongodb mongodb-query aggregation-framework


    【解决方案1】:

    更新您的文档并创建一个新集合

    db.location.aggregate([
      { "$addFields": {
        "location": {
          "type": "Point",
          "coordinates": ["$location.loc.lng", "$location.loc.lat"]
        },
        "geocode": "$location.geocode"
      }},
      { "$out": "location" }
    ])
    

    然后在location字段上创建索引

    db.location.createIndex({ "location": "2d" })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2012-06-26
      相关资源
      最近更新 更多