MongoDB批量更新无法正常工作

时间:2016-03-09 23:13:12

标签: mongodb-query

我试图通过覆盖表格中的所有电子邮件值来清理一组数据(通过mongodb reference here)。以下内容不会导致错误,但也不会更新任何值:

db.applicants.update(
    { institution_id: { $gt: 1 } }, 
    {$set: {email: "sanitizedmail@there.com"}},
    { multi: true })

和样本记录:

{
    "id": "0003ee8c-2288-11e4-9610-0015c5f288ee",
    "created_at": "8/12/14 9:24",
    "updated_at": "8/12/14 9:25",
    "email": "some@there.com",
    "institution_id": "379",
}

1 个答案:

答案 0 :(得分:1)

根据您的数据结构

  

institution_id

字段是类型:text(2),因此 $ gt 将无法执行。

使用下面提供的代码段将其更改为整数:

db.applicants.find( { 'institution_id' : { $type : 2 } } ).forEach( 
    function (x) {   
      x.institution_id = parseInt(x.institution_id); // convert field to int
      db.applicants.save(x);
})