6

假设我有两个字段 F1 和 F2。我想将 F1 更新为F1 + ", " + F2. 我可以使用 mongo 中的单个更新命令来执行此操作吗?

4

2 回答 2

4

不,你不能那样做。您不能在 mongodb 更新中使用表达式。唯一的方法是将该文档获取到客户端,在那里编写新的字段值并发出准备好的更新语句。

于 2012-04-19T12:02:58.380 回答
2

正如 Sergio 所提到的,即使在2.4.8版本提出问题一年后,你也不能这样做。但是如果你需要这样做,你可以使用这个

db.yourCollection.find({}).forEach(function(doc) {
  doc.F1 = doc.F1 + ", " + doc.F2;
  delete doc.F2;
  db.yourCollection.save(doc);
});
于 2013-11-07T20:40:10.160 回答