sql >> Database >  >> NoSQL >> MongoDB

MongoDB-query:$ bijna met aggregatie

U moet $geoNear gebruiken , en alleen als u V2.4 en hoger gebruikt

db.users.aggregate(   
    {$geoNear : {
        near: [-1, -2],
        distanceField: "distance",
        query : {"_id" : "id1"},
        uniqueDocs: true,
        maxDistance : 2000
}})

Bewerken:na bewerking naar vraag

De balgquery geeft je locatie en afstand, maar haalt het interne (array-element) _id niet op

db.users.aggregate(   
  {$geoNear : {
    near: [-1, -2],
    distanceField: "distance",
    includeLocs: "location",
    query : {"_id" : "id1"},
    maxDistance : 2000
  }},
  {$project : {"location" : 1, "_id" : 0, "distance" : 1}} 
)

Let op de toevoeging van includeLocs en verwijdering van uniqueDocs: true

Om ook de interne _id op te halen, moet je (volgens dit voorbeeld) afwikkelen en voorwaardelijk projecteren of zo, maar ik denk niet dat het de moeite waard is, tenzij je het adres nodig hebt in plaats van de _id




  1. mongoengine +django hoe het aantal items met dezelfde inhoud te tellen

  2. mongodb-database met Java play 2.0

  3. MongoDB-wachtwoord met @ erin

  4. MongoDB:moet u vooraf een document toewijzen als u $addToSet of $push gebruikt?