MongoDB:在mongoDB中的嵌套数组中添加嵌套数组结构

时间:2013-11-21 10:00:24

标签: mongodb

我在mongoDB中有一个包含许多文档的集合,其中一个看起来像,

{
  date: '2012-10-20 12:30UTC',
  personal_info: {name: 'sam', group_id: 'A1234', address:['rourkela', 'sundergarh']},
  blog:[{ blog: 'Got admitted to IIT', 
          comments:[{
                     author:{name:'sam', email: 'sam@gmail.com'},
                     comment:'good buddy',
                     ph_no: 12345
                    },
                    {
                     author:{name:'vam', email: 'vam@gmail.com'},
                     comment:'happy for you',
                     ph_no:56789}
                    }]
       }]
}

我的要求是在评论数组中添加子文档结构,其中博客 '已获准进入IIT'

我想附加的子文件如下:

                    {
                      author:{name:'mam', email: 'mam@gmail.com'},
                      comment:'great, keep it up'
                     }

在附加上述结构后,我的文档结构应如下所示:

{
  date: '2012-10-20 12:30UTC',
  personal_info: {name: 'sam', group_id: 'A1234', address:['rourkela', 'sundergarh']},
  blog:[{ blog: 'Got admitted to IIT', 
          comments:[{
                     author:{name:'sam', email: 'sam@gmail.com'},
                     comment:'good buddy',
                     ph_no: 12345
                    },
                    {
                     author:{name:'vam', email: 'vam@gmail.com'},
                     comment:'happy for you',
                     ph_no:56789
                    },
                    {
                      author:{name:'mam', email: 'mam@gmail.com'},
                      comment:'great, keep it up'
                    }]
       }]
}

如何通过mongo shell中的编码实现上述目的。

提前致谢..

1 个答案:

答案 0 :(得分:0)

您可以按照以下方式执行此操作:

db.myObject.update(
    {"blog.blog" : "Got admitted to IIT"},
    {
        "$push" : {
            "blog.$.comments" : { 
                author: {name:'mam', email: 'mam@gmail.com'}, 
                comment:'great, keep it up'
            }
        }
    }

相关问题