2011-01-01 3 views
10

ho questi campi in una collezione:

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

poi faccio una domanda come questa:

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

e mi aspetto di ottenere:

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

Purtroppo no. Che cosa sto facendo di sbagliato?

risposta

5

Stavo usando mongodb dal repository ubuntu che è più vecchio di 1.5.3 (la documentazione di mongodb dice che $ o è disponibile dalla 1.5.3). Dopo aver cambiato l'ultima versione (1.6.5), tutto funziona come previsto.

+3

Voto positivo: la stessa cosa mi è successa. So che è una cosa stupida da sospendere, ma a volte stai sbattendo la testa contro il muro e hai solo bisogno di un post come questo per ricordarti di controllare le cose di base ... come i numeri di versione. –