我试图通过覆盖表格中的所有电子邮件值来清理一组数据(通过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",
}
答案 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);
})