Question

Dire que j'ai une structure de données quelque chose comme ceci:

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

Maintenant, dire que je voulais mettre quelque chose. Dans un premier temps, je pensais que ce serait fait comme ceci:

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

Ceci, cependant, semble être incorrect. Il ne met des données là-dedans, mais il le fait d'une manière bizarre. Il serait, dans ce cas, finissent comme ceci:

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

Bien sûr, pas ce que je cherchais.

Était-ce utile?

La solution

Les oeuvres suivantes pour moi de la coquille mongo - donc je ne suis pas sûr de ce qui est arrivé ci-dessus pour vous. Essayez et voir si cela fonctionne? Si oui, je dirais saisir le dernier code mongo en cas quelque chose utilisé problématique.

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"}}
> 

Comme mentionné ci-dessus, les forums MongoDB se voit plus vite (ou essayer IRC) probablement.

Autres conseils

Vous feriez mieux de demander cela dans le googlegroup de l'utilisateur MongoDB. La réponse à votre question est ici http://groups.google msg / 583d37ef41ef5cca .com / groupe / MongoDB utilisateur /? hl = fr

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top