Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

วิธีเพิ่มข้อมูลลงในอาร์เรย์ใน MongoDB


การต่ออาร์เรย์ด้วย $concatArrays

เมื่อต้องการรวมอาร์เรย์หลายตัวเข้าด้วยกันใน MongoDB ให้ใช้ operator $concatArrays ภายใน aggregation pipeline

ตัวอย่างข้อมูลต้นฉบับ

> db.demo435.insertOne({ "FirstName": ["Chris"], "LastName": ["Brown"] });
{ "acknowledged": true, "insertedId": ObjectId("5e7719b1bbc41e36cc3cae97") }

> db.demo435.insertOne({ "FirstName": ["David"], "LastName": ["Miller"] });
{ "acknowledged": true, "insertedId": ObjectId("5e7719bdbbc41e36cc3cae98") }

> db.demo435.insertOne({ "FirstName": ["John"], "LastName": ["Doe"] });
{ "acknowledged": true, "insertedId": ObjectId("5e7719c6bbc41e36cc3cae99") }

แสดงข้อมูลทั้งหมด

> db.demo435.find().pretty();

ผลลัพธ์:

{ "_id": ObjectId("5e7719b1bbc41e36cc3cae97"), "FirstName": ["Chris"], "LastName": ["Brown"] }
{ "_id": ObjectId("5e7719bdbbc41e36cc3cae98"), "FirstName": ["David"], "LastName": ["Miller"] }
{ "_id": ObjectId("5e7719c6bbc41e36cc3cae99"), "FirstName": ["John"], "LastName": ["Doe"] }

Query สำหรับต่ออาร์เรย์

> db.demo435.aggregate([
  { $project: { FullName: { $concatArrays: ["$FirstName", "$LastName"] } } }
])

ผลลัพธ์

{ "_id": ObjectId("5e7719b1bbc41e36cc3cae97"), "FullName": ["Chris", "Brown"] }
{ "_id": ObjectId("5e7719bdbbc41e36cc3cae98"), "FullName": ["David", "Miller"] }
{ "_id": ObjectId("5e7719c6bbc41e36cc3cae99"), "FullName": ["John", "Doe"] }

ข้อสังเกต

  • $concatArrays รองรับการต่ออาร์เรย์หลายตัวพร้อมกัน
  • ลำดับของอาร์เรย์ในพารามิเตอร์จะกำหนดลำดับผลลัพธ์
  • เหมาะสำหรับการรวมฟิลด์อาร์เรย์ที่เกี่ยวข้องกัน เช่น ชื่อ-นามสกุล