【问题标题】:How to use concat with mongoose aggregate using $set如何使用 $set 将 concat 与 mongoose 聚合一起使用
【发布时间】:2019-12-23 05:27:53
【问题描述】:

例如,我有一个文件如下。

{
   "test": "success"
}

我想在“成功”之后添加额外的字符串值。

{
   "test": "successfail"
}

因此我尝试了一些使用猫鼬的聚合。

const Users = require("./userSchema")

Users.aggregate([
  {},
  [{ $set: { test: { $concat: [ "$test", "fail" ] } } }],
])

但这根本不起作用。
您能为此推荐一些解决方案吗?非常感谢您阅读本文。

【问题讨论】:

    标签: mongodb mongoose mongodb-query aggregation-framework


    【解决方案1】:

    要在集合的现有字段中连接字符串,您应该使用$project 阶段管道和$concat 运算符,如下所示,而不是管道阶段中的$set

    Users.aggregate([ { $project: { test: { $concat: [ "$test", "", "fail" ] } } } ])

    有关更多详细信息,请同时检查以下带有输出的查询:

    > db.st1.find()
    { "_id" : ObjectId("5dffa38b4a36d14455f50158"), "test" : "success" }
    > db.st1.aggregate([{$project: {test: {$concat: ["$test", "fail" ]  }  }  }])
    { "_id" : ObjectId("5dffa38b4a36d14455f50158"), "test" : "successfail" }
    >
    > db.st1.aggregate([{$project: {test: {$concat: ["$test", "-", "fail" ]  }  }  }])
    { "_id" : ObjectId("5dffa38b4a36d14455f50158"), "test" : "success-fail" }
    > 
    > db.st1.aggregate([{$project: {test: {$concat: ["$test", "", "fail" ]  }  }  }])
    { "_id" : ObjectId("5dffa38b4a36d14455f50158"), "test" : "successfail" }
    

    参考MongoDB官方文档:

    1. https://docs.mongodb.com/manual/reference/operator/aggregation/concat/#concat-aggregation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-12
      • 2013-01-11
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2019-12-18
      • 1970-01-01
      相关资源
      最近更新 更多