2012-11-14 4 views
2

De ma collection, je veux juste retourner les enregistrements qui ont des informations de localisation ou de lieu (coordonnées incluses) dans les enregistrements. Donc, si l'une ou l'autre condition n'est pas nulle, elle récupère l'un ou l'autre ou les deux champs si les deux conditions ne sont pas nulles.Requête de collection Mongo et opérateurs

Ma requête est-ce à ce jour:

 cursor = coll.find({"$or" : [{"place.bounding_box.type" : {"$ne" : None }}, {"coordinates.type" : {"$ne" : None }}]}, {"coordinates.coordinates" :1}, 
       {"place.bounding_box.coordinates" : 1}, tailable = True, timeout = False) 

Mais je reçois cette erreur de pymongo:

raise TypeError("skip must be an instance of int") 
TypeError: skip must be an instance of int 

je peux obtenir les requêtes de travailler séparément, mais pas dans une requête de jointure comme ci-dessus.

Merci

Répondre

2

Cette erreur semble être le fait que vous faites un .skip ("string") sur le curseur des résultats.

De plus, vous devriez avoir une lecture sur $ existe aussi.

+0

Je pense que c'est parce que j'ai fait: {"coordinates.coordinates": 1}, {"place.bounding_box.coordinates": 1} au lieu de {"coordinates.coordinates": 1, "place.bounding_box.coordinates": 1 } Comme vous l'avez mentionné dans votre réponse à http://stackoverflow.com/questions/13385986/running-multiple-queries-in-mongo – user94628

1

Je ne suis pas familier avec pymongo, mais MongoDB ne prend pas en charge ... Vous jointures aurez besoin pour exécuter les deux requêtes séparément, et rejoindre les résultats.

+0

Alors même si je veux retourner les sous-champs dans le même enregistrement, j'ai encore besoin d'exécuter les deux requêtes et joindre les résultats? – user94628

Questions connexes