更新Mongodb集合

时间:2014-05-17 17:19:57

标签: mongodb

我想在_id小于200的所有文档中更改2个属性的值,新值将是随机的(从1到15)。所以我开始编写这个脚本但不起作用:

    db.myCollection.update(
    { _id: { $lt: 200 }},

   {

     tilte1 : "hello"+Math.floor(Math.random()*16),

     title2 : ["hello"+Math.floor(Math.random()*16),"hello"+Math.floor(Math.random()*16),"hello"+Math.floor(Math.random()*16)], 

   })

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

db.myCollection.update(
    { _id: { $lt: 200 }},
    {
      $set : { title1 : "hello"+Math.floor(Math.random()*16) ,
               title2 : ["hello"+Math.floor(Math.random()*16),"hello"+Math.floor(Math.random()*16),"hello"+Math.floor(Math.random()*16)]}

    }, {multi: true});

您需要添加{multi: true}来更新所有文档,否则它只会更新第一个文档。

你在title1字段中输错了。确保其tilte1title1

如果您想保留文档中的前一个字段,请使用$set。根据您当前的查询,它将替换文档并仅使用这两个字段。

请注意:Multi updates only works with $ operators