tenés que pasarle "true" cómo cuarto parámetro del update.

el tercer parámetro si lo pasas como "true", entonces si no existe ese
registro en la colección, lo crea.

http://docs.mongodb.org/manual/reference/method/db.collection.update/


El 1 de noviembre de 2013 16:44, Jorge <shephir...@hotmail.com> escribió:

> Buenas.
>
> Soy nuevo en este de mongodb (base de datos no relacional) y no se si lo
> que
> intento es imposible o simplemente lo estoy haciendo mal.
>
> A la hora de crear la estructura de mis documentos estoy utilizando listas
> de diccionarios. A la hora de introducir datos no hay problema, para buscar
> datos estoy utilizando mapreduces...pero para modificar datos me he
> encontrado con un gran problema, y es que solo modifica el primer valor
> valor de la lista que cumple con las condiciones. Hay algun modo de que si
> mas de un valor de la lista cumple con las condiciones del find lo
> modifique???
>
> Mi estructura:
> [{"datos":"datos",....
>   "mi_lista": [
>     {"id":1, "otro_id":3, "value":10},
>     {"id":2, "otro_id":3, "value":3}]
> }]
>
> Mi consulta:
> mongodb["proyecto"]["coleccion"].update(
>   {"mi_lista.otro_id":3},
>   {"mi_lista.$.value":7}
> )
>
> Esta funcion solo modifica la primera ocurrencia de la lista en cada
> documento. Hay alguna manera para que modifique todos los diccionarios que
> cumplan con la condicion impuesta??
>
> GRACIAS
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a