$concat(字符串拼接)
最后更新:2026-10-09
$concat(字符串拼接)
$concat 将两个或多个字符串(或解析为字符串的表达式)拼接为一个字符串。它是聚合表达式中最常用的字符串操作符,常用于组合姓名、生成完整地址或构造输出标签。任一个参数为 null 或缺失时,$concat 返回 null。
| 分类 | 字符串 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $concat: [ <表达式1>, <表达式2>, ... ] }
⚙️ 参数
| 表达式 | 字符串或解析为字符串的表达式,至少两个。 |
|---|
返回值:拼接后的字符串;任一参数为 null 时返回 null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $concat:拼接姓与名
db.users.aggregate([
{ $project: {
fullName: { $concat: [ "$firstName", " ", "$lastName" ] }
} }
])
运行结果:
{ "_id": 1, "fullName": "Alice Johnson" }
{ "_id": 2, "fullName": "Bob Smith" }
📌 注意事项
- 任一参数为 null 或缺失 → 整体返回 null(可用 $ifNull 兜底)
- $concat 只接受字符串;数字需先用 $toString 转换
- 空字符串 "" 是合法参数,不会导致 null
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$concat 能拼接数字吗?
A不能直接拼,会报错。需先用 $toString 或 $convert 把数字转成字符串再拼。
Q$concat 拼接时遇到 null 或缺失字段会怎样?
A任一操作数为 null 或缺失时,$concat 返回 null(不是报错,也不是跳过)。可用 $ifNull 提供默认值兜底。
Q$concat 能拼接数组吗?
A不能。$concat 只接受字符串;拼接数组要用 $concatArrays,拼接对象用 $mergeObjects。