$concat (文字列連結)
最終更新:2026-10-09
$concat (文字列連結)
$concat は、2 つ以上の文字列(または文字列に解決される式)を連結して 1 つの文字列にします。集計式の中で最もよく使われる文字列演算子で、名前の結合、住所の組み立て、出力ラベルの作成などに利用されます。引数のいずれかが null または欠落している場合、$concat は null を返します。
| カテゴリ | 文字列 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $concat: [ <expression1>, <expression2>, ... ] }
⚙️ パラメータ
| 式 | 文字列、または文字列に解決される式。少なくとも2つ。 |
|---|
戻り値:連結された文字列。いずれかの引数が null の場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $concat: 姓と名を連結
db.users.aggregate([
{ $project: {
fullName: { $concat: [ "$firstName", " ", "$lastName" ] }
} }
])
出力:
{ "_id": 1, "fullName": "Alice Johnson" }
{ "_id": 2, "fullName": "Bob Smith" }
📌 注意事項
- 引数が 1 つでも null・欠落だと結果は null になる($ifNull で保護)
- $concat は文字列のみ受け付ける。数値は先に $toString で変換する
- 空文字列 "" は有効な引数であり、null にはならない
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$concat は数値を連結できますか?
A直接はできません。エラーになります。数値は先に $toString または $convert で文字列に変換してください。
Q連結時にフィールドが null や存在しない場合はどうなりますか?
Aいずれかのオペランドが null または欠落していると、$concat は null を返します(エラーにもスキップにもなりません)。$ifNull でオペランドを包んでフォールバックを提供してください。
Q$concat は配列を連結できますか?
Aいいえ。$concat は文字列のみ受け付けます。配列には $concatArrays、オブジェクトには $mergeObjects を使います。