sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan laver du en brugerdefineret forespørgsel ved hjælp af django-nonrel og mongodb

Jeg fandt et svar på dette spørgsmål, lad mig nu, hvis der er et bedre.

Som dokumenteret her, tildel dine objekter til MongoDBManager - http://django-mongodb-engine.github.com/mongodb-engine/cool-stuff.html#included-mongodb-batteries

from django_mongodb_engine.contrib import MongoDBManager

class MyModel(models.Model):
    objects = MongoDBManager()

Så kan du lave rå forespørgsler som dette:

MyModel.objects.raw_query({'loc' : {'$near' : [50,50]}})

En anden tilgang, tror jeg ville være at gå direkte til pymongo:http://api.mongodb.org/python/1.10%2B/examples/geo.html

Til sidst endte jeg med denne forespørgsel:

nearest = MyModel.objects.raw_query(
    {'loc' : {
         '$within' :{ #within .05 degrees of lat/lon
                    '$center' : [{'long' : long,'lat' : lat}, .05]
                    }
      })[:10] #get up to 10 results



  1. Er det dårlig praksis at bruge et mongo ObjectId som en brugers id?

  2. Returner opdateret samling med Mongoose

  3. Brug Aggregate med $group i mongodb

  4. Mongodb:aggregeret matrix af heltal for hver matrixposition