Pregunta

Digamos que tiene una estructura de datos algo como esto:

{
    'name': 'test',
    'anotherdoc': {
        'something': 'someval',
        'somenum': 1
    }
}

Ahora, dicen que quería establecer algo. Al principio, pensé que sería hecho de esta manera:

collection.update({'_id': myid}, {$set: {'anotherdoc.something': 'somenewval'});

Esto, sin embargo, parece ser incorrecta. Sí pone algunos datos allí, pero lo hace de una manera extraña. Sería, en este caso, acabar de esta manera:

[
    {
        'name': 'test',
        'anotherdoc': {
            'something': 'someval',
            'somenum': 1
        }
    },
    ['anotherdoc.something', 'someval']
]

Por supuesto, no es lo que estaba buscando.

¿Fue útil?

Solución

Los siguientes obras para mí desde la consola mongo - así que no estoy seguro de lo que pasó por encima de ti. ¿Intenta esto y mira si funciona? Si es así, diría agarrar el último código mongo en caso de que algo solía ser problemático.

x = { 'name': 'test', anotherdoc: { 'something': 'someval', somenum : 1 } }
> x
{"name" : "test" , "anotherdoc" : {"something" : "someval" , "somenum" : 1}}
> collection = db.foo;
test.foo
> collection.insert(x)
> collection.find()
{"_id" :  ObjectId( "4a61b6711591f41f0f1bc5ff")  , "name" : "test" , "anotherdoc" : {"something" : "someval" , "somenum" : 1}}
> x
{"name" : "test" , "anotherdoc" : {"something" : "someval" , "somenum" : 1}}
> x._id
> x = collection.findOne()
{"_id" :  ObjectId( "4a61b6711591f41f0f1bc5ff")  , "name" : "test" , "anotherdoc" : {"something" : "someval" , "somenum" : 1}}
> collection.update({'_id': x._id}, {$set: {'anotherdoc.something': 'somenewval'}} )
> collection.find()
{"_id" :  ObjectId( "4a61b6711591f41f0f1bc5ff")  , "name" : "test" , "anotherdoc" : {"somenum" : 1 , "something" : "somenewval"}}
> 

Como se mencionó anteriormente, los foros de MongoDB probablemente consiguen considerados más rápido (o tratan de IRC).

Otros consejos

Es mejor que haga esta en googlegroup del usuario mongodb. La respuesta a su pregunta aquí es http://groups.google .com / grupo / mongodb-usuario / msg / 583d37ef41ef5cca? hl = es

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top