MongoDB 更新。尝试从一个字段的属性设置另一个字段

2024-05-26

我想做的事情非常简单,但我不知道如何为一个字段赋予另一个字段的值。

我只想用另一个字段的字符数更新一个字段。

db.collection.update({$exists:true},{$set : {field1 : field2.length}})

我试过给它点符号

db.collection.update({$exits:true},{$set : {field1: "this.field2.length"}})

以及使用 javascript 语法

db.collection.update({$exits:true},
                     {$set : {field1: {$where : "this.field2.length"}})

但只是复制了字符串并分别得到了“notOkforstorage”。有什么帮助吗?

更新: 当我通过 ID 查询时,我只得到“notOkforStorage”:

db.collection.update({_id:ObjectID("38289842bbb")},
                     {$set : {field1: {$where :"this.field2.length"}}})

尝试以下代码:

db.collection.find(your_querry).forEach(function(doc) {
  doc.field1 = doc.field2.length;
  db.collection.save(doc);
});

您可以使用your_querry仅选择原始集合的一部分执行更新。如果您想处理整个集合,请使用your_querry = {}.

如果您希望所有操作都是原子的,请使用update代替save:

db.collection.find( your_querry, { field2: 1 } ).forEach(function(doc) {
  db.collection.update({ _id: doc._id },{ $set: { field1: doc.field2.length } } );
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 更新。尝试从一个字段的属性设置另一个字段 的相关文章

随机推荐