MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB $ concat

Trong MongoDB, $concat toán tử đường ống tổng hợp nối hai hoặc nhiều chuỗi và trả về chuỗi đã nối.

Ví dụ

Giả sử chúng ta có một bộ sưu tập được gọi là employees với tài liệu sau:

{
	"_id" : 1,
	"firstName" : "Sandy",
	"surname" : "Beach",
	"position" : "Lifesaver",
	"salary" : 55000
}

Chúng ta có thể sử dụng $concat toán tử để nối họ và tên:

db.employees.aggregate(
  [
    { $project: { 
        _id: 0,
        name: { $concat: [ "$firstName", "$surname" ] }
      }
    }
  ]
)

Kết quả:

{ "name" : "SandyBeach" }

Chuỗi khác

Ví dụ trước nối hai chuỗi, nhưng chúng ta có thể nối nhiều chuỗi hơn nếu cần.

Ví dụ:chúng ta có thể chèn một khoảng trắng giữa tên và họ.

Ví dụ:

db.employees.aggregate(
  [
    { $project: { 
        _id: 0,
        name: { $concat: [ "$firstName", " ", "$surname" ] }
      }
    }
  ]
)

Kết quả:

{ "name" : "Sandy Beach" }

Chúng tôi cũng có thể bao gồm nhiều trường hơn trong nối của chúng tôi.

Ví dụ:

db.employees.aggregate(
  [
    { $project: { 
        _id: 0,
        employee: { 
          $concat: [ "$firstName", " ", "$surname", ", ", "$position" ] 
          }
      }
    }
  ]
)

Kết quả:

{ "employee" : "Sandy Beach, Lifesaver" }

Các loại dữ liệu khác

$concat toán tử chỉ hỗ trợ chuỗi. Áp dụng $concat sang một loại khác dẫn đến lỗi.

Ví dụ:

db.employees.aggregate(
  [
    { $project: { 
        _id: 0,
        name: { 
          $concat: [ "$firstName", "$salary" ] 
          }
      }
    }
  ]
)

Kết quả:

Error: command failed: {
	"ok" : 0,
	"errmsg" : "$concat only supports strings, not double",
	"code" : 16702,
	"codeName" : "Location16702"
} : aggregate failed :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/assert.js:18:14
[email protected]/mongo/shell/assert.js:618:17
[email protected]/mongo/shell/assert.js:708:16
[email protected]/mongo/shell/db.js:266:5
[email protected]/mongo/shell/collection.js:1046:12
@(shell):1:1

Trong ví dụ này, tôi đã cố gắng nối một chuỗi với một số nhưng tôi gặp lỗi cho biết $ concat chỉ hỗ trợ chuỗi chứ không phải kép .


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bản ghi ngẫu nhiên từ MongoDB

  2. MongoDB $ dayOfWeek

  3. Không thể kết nối với MongoDB do URI sai

  4. Gọi lại Mongoose.js instance.save () không kích hoạt

  5. tạo giản đồ mongoose