MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как мога да намеря близко място с географска ширина и дължина в mongodb?

Здравейте. За вашия случай мисля, че трябва да промените горния документ, както е показано по-долу

    {
    "_id" : ObjectId("545749dba2b0b4cf603a7546"),
    "city" : "B",
    "placeName" : "A",
    "loc" : {
        "lon" : 51.10682735591432,
        "lat" : -114.11773681640625
    }
}
{
    "_id" : ObjectId("545749f3a2b0b4cf603a7547"),
    "city" : "B1",
    "placeName" : "A1",
    "loc" : {
        "lon" : 51.09144802136697,
        "lat" : -114.11773681640625
    }
}

След това индексирайте горните документи, както е показано по-долу

db.collectionName.ensureIndex({loc:"2d"})

Ако индексирането се изпълнява правилно, тогава напишете следната заявка, за да намерите близки документи

db.location.find({loc: {$near:[51,-114]}})

за повече помощ трябва да посочите този mongo $near и $geoNear щракнете тук

и съжалявам за golang, защото не знам повече за golang

за golang

var places []Place
lat := 51.515614
long := -0.268998
err = coll.Find(bson.M{"loc": bson.M{"$near": []float64{long, lat}, "$maxDistance" :      0.056}}).All(&places)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Метеор:Намиране на обект от колекция от _id

  2. Заявка за активен запис, където стойността е в полето за масив

  3. Как мога да променя полето _id в MongoDB Collection на User_id?

  4. Възможна заявка с MongoDB

  5. Ефективност на търсенето в MongoDb