【问题标题】:prepend string to entire column in mongodb在mongodb中将字符串添加到整个列
【发布时间】:2014-12-15 04:24:43
【问题描述】:

我想在 mongo 集合列的所有值前添加一个字符串。

有点像

 db.testcoll.update({},{$set:{column1 : "prependstring"+ column1}});

有这样的吗?

【问题讨论】:

  • 您需要检索、修改和更新每个文档。您可以使用下面答案中解释的聚合框架,但它会生成一组新文档,而不是修改旧文档。您可以使用$out 阶段将新文档保存到新集合中。

标签: string mongodb prepend


【解决方案1】:

这可以在聚合管道中使用 $concat 运算符来实现。

db.testcoll.aggregate([{
  $project: {
    column1: {
      $concat: ['prependstring', '$column1']
    }
  }
}]);

正如官方 MongoDB 文档 (here) 中所述,$concat 运算符仅适用于字符串。

【讨论】:

  • 您还需要投影文档中的所有其他字段,以获得看起来像原件的输出文档。聚合管道从旧文档创建新文档,是否需要使用 $out 保存到新集合。
  • @wdberkeley 确实如此。为了永久更改集合,必须指定 $out 阶段以及输出集合的名称
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
相关资源
最近更新 更多