Domanda

Ho questi campi in una raccolta:

[{
     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 query 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?

È stato utile?

Soluzione

I stava usando MongoDB dal repository di Ubuntu, che è più vecchio di 1.5.3 (La documentazione di MongoDB dice che $ o è disponibile da 1.5.3). Dopo aver cambiato l'ultima versione (1.6.5) tutto funziona come previsto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top