2011-01-01 11 views
10

mam tych pól w kolekcji:

[{ 
    u'_id': ObjectId('4d1f7b4d5d256b18c8000000'), 
    u'name': u'1' 
},{ 
    u'_id': ObjectId('4d1f7b505d256b18c8000001'), 
    u'name': u'2' 
},{ 
    u'_id': ObjectId('4d1f7b525d256b18c8000002'), 
    u'name': u'3' 
}] 

Potem dokonać kwerendy tak:

[x for x in c.things.find({'$or' : [{'name':'1'}, {'name':'2'}] })] 

i spodziewam się dostać:

[{ 
    u'_id': ObjectId('4d1f7b4d5d256b18c8000000'), 
    u'name': u'1' 
}, { 
    u'_id': ObjectId('4d1f7b505d256b18c8000001'), 
    u'name': u'2' 
}] 

Niestety nie. Co ja robię źle?

Odpowiedz

5

Używałem mongodb z repozytorium ubuntu, które jest starsze niż 1.5.3 (Dokumentacja mongodb mówi, że $ lub jest dostępna od 1.5.3). Po zmianie na najnowsze wydanie (1.6.5) wszystko działa zgodnie z oczekiwaniami.

+3

Awans: To samo mi się przydarzyło. Wiem, że to głupota, ale czasami walisz głową o ścianę i potrzebujesz takiego posta, aby przypomnieć sobie, żeby sprawdzić podstawowe rzeczy ... takie jak numery wersji. –