5

Mongo DB の別のドキュメント内の配列内のドキュメントを更新する必要があります

    {
            "_id" : ObjectId("51cff693d342704b5047e6d8"),
            「作者」:「テスト」、
            "body" : "sdfkj dsfhk asdfjad ",
            「コメント」:[
                    {
                            「作者」:「テスト」、
                            "本体" : "sdfkjdj\r\nasdjgkfdfj",
                            "email" : "test@tes.com"
                    }、
                    {
                            "作者" : "ほら",
                            "body" : "sdfl\r\nhola \r\nwork here"
                    }
            ]、
            "date" : ISODate("2013-06-30T09:12:51.629Z"),
            "パーマリンク" : "jaiho",
            「タグ」:[
                    「ジャイホー」
            ]、
            「タイトル」:「JAiHo」
    }


Q1) コメント配列の0番目の要素のメールを更新する
db.posts.update({"permalink" : "haha"},{$set:{"comments.0.email":1}})
これは例外をスローしませんが、何も更新しません
Q2) コメント配列 number_likes の n 番目の要素にフィールドを追加する
db.posts.update({"permalink" : "haha"},{$inc:{"comments.0.num_likes":1}})
どちらも機能しません。

ここで何か不足していますか?
4

2 に答える 2

6

Node JS で動的に実行しようとしている場合は、次のように動作するはずです。

i = 0;
selector = {};
operator = {};
selector['comments.' + i + '.email'] = 1; // {'comments.0.num_likes' : 1}
operator['$inc'] = selector;  // {'$inc' : {'comments.0.num_likes' : 1} }
db.posts.update({'permalink' : 'xyz'}, operator);
于 2013-10-01T12:17:10.073 に答える