2012-04-02 13 views
0

ich eine Liste von ObjectId abrufen und ich möchte alle Objekte in meiner Mongo Datenbank abgerufen werden alle

mit dem Parameter $

Ich verwende pymongo und meine Anfrage aussehen dies:

db.database.collection.find({ "_id" : { "$all" : [ObjectId('4ee371837c93dd33dc000003'),ObjectId('4eef9f647c93dd1a90000000')] } }) 

aber die Cursor Zählung durch die Anfrage zurückgegeben wird, ist 0 aber wenn ich diese Anfrage zu tun:

db.database.collection.find_one({ "_id" : ObjectId('4ee371837c93dd33dc000003')}) 

Es gibt mir das gute Objekt

Wer weiß, warum es nicht funktioniert?

Antwort

7

Diese Abfrage ergibt keinen Sinn. Sie fordern, dass das einmalige und einwertige _id Feld alle von zwei verschiedenen Werten gleichzeitig hat.

Ich glaube, Sie $in wollen:

db.database.collection.find({ "_id" : { 
    "$in" : 
    [ObjectId('4ee371837c93dd33dc000003'), 
     ObjectId('4eef9f647c93dd1a90000000')] } }) 
+0

oh ja, das ist wahr! Vielen Dank – kschaeffler