Usando $ o cláusula en pymongo
Pregunta
Tengo estos campos en una colección:
[{
u'_id': ObjectId('4d1f7b4d5d256b18c8000000'),
u'name': u'1'
},{
u'_id': ObjectId('4d1f7b505d256b18c8000001'),
u'name': u'2'
},{
u'_id': ObjectId('4d1f7b525d256b18c8000002'),
u'name': u'3'
}]
A continuación hago una consulta como la siguiente:
[x for x in c.things.find( {'$or' : [{'name':'1'}, {'name':'2'}] } )]
y espero obtener:
[{
u'_id': ObjectId('4d1f7b4d5d256b18c8000000'),
u'name': u'1'
}, {
u'_id': ObjectId('4d1f7b505d256b18c8000001'),
u'name': u'2'
}]
Por desgracia, no. ¿Qué estoy haciendo mal?
Solución
Yo estaba usando mongodb desde el repositorio de Ubuntu, que es mayor que 1.5.3 (La documentación de mongodb dice que $ o está disponible desde 1.5.3). Después de cambiar a la última versión (1.6.5) todo está funcionando como se esperaba.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow