2011-01-01 13 views
10

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' 
}] 

Entonces hago una consulta como esta:

[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' 
}] 

Desafortunadamente no. ¿Qué estoy haciendo mal?

Respuesta

5

Estaba usando mongodb desde el repositorio de Ubuntu que es anterior a 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.

+3

Votación: lo mismo me sucedió a mí. Sé que es una tontería votar, pero a veces te golpeas la cabeza contra la pared y solo necesitas una publicación como esta para recordarte a ti mismo que verifiques las cosas básicas ... como los números de versión. –

Cuestiones relacionadas