質問

私はこのようなデータ構造に何かを持っていると言います

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

さて、私は何かを設定したいと言います。最初は、私もそれはそうのように行われます。

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

これは、しかし、不正確であると思われます。それはそこにいくつかのデータを置くんが、それは奇妙な方法でそうします。それは、この場合には、そのように終わるでしょう。

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

もちろん、ない私が探していたもの。

役に立ちましたか?

解決

のmongoシェルから私のために、次の作品は - 私はあなたのために上記の何が起こったのかわかりません。これを試してみて、それが動作するかどうかを確認?もしそうなら、私はグラブに問題があることに使用される場合、何かの最新のmongoコードを言うでしょう。

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"}}
> 
前述したように、

、MongoDBのフォーラムは、おそらく速く見える(またはIRCを試してみてください)取得します。

他のヒント

あなたはより良いMongoDBのユーザーのgooglegroupでこれをお願いしたいです。 あなたの質問に対する答えはここに http://groups.googleです.COM /グループ/ MongoDBのユーザ/ MSG / 583d37ef41ef5cca?HL = EN

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top