Mongodb: วิธีเชื่อมสตริงของสองฟิลด์เข้าด้วยกัน
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเชื่อมสตริงจากสองฟิลด์เข้ากับฟิลด์ใหม่ใน MongoDB:
db.myCollection.aggregate([ { $project : { newfield: { $concat : [ " $field1 ", " - ", " $field2 " ] } } }, { $merge : "myCollection" } ])
ตัวอย่างเฉพาะนี้เชื่อมสตริง “field1” และ “field2” เข้ากับฟิลด์ใหม่ชื่อ “newfield” และเพิ่มฟิลด์ใหม่ให้กับคอลเลกชันที่ชื่อ myCollection
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติกับ ทีม เรียกเก็บเงิน โดยมีเอกสารต่อไปนี้:
db.teams.insertOne({team: " Mavs ", conference: " Western ", points: 31}) db.teams.insertOne({team: " Spurs ", conference: " Western ", points: 22}) db.teams.insertOne({team: " Rockets ", conference: " Western ", points: 19}) db.teams.insertOne({team: " Celtics ", conference: " Eastern ", points: 26}) db.teams.insertOne({team: " Cavs ", conference: " Eastern ", points: 33}) db.teams.insertOne({team: " Nets ", conference: " Eastern ", points: 38})
ตัวอย่าง: การต่อสตริงใน MongoDB
เราสามารถใช้โค้ดต่อไปนี้เพื่อเชื่อมสตริงจากฟิลด์ “ทีม” และฟิลด์ “การประชุม” เข้ากับฟิลด์ใหม่ที่เรียกว่า “teamConf” และเพิ่มฟิลด์นี้ลงในคอลเลกชัน ทีม :
db.teams.aggregate([ { $project : { teamConf: { $concat : [ " $team ", " - ", " $conference " ] } } }, { $merge : "teams" } ])
นี่คือลักษณะของคอลเลกชันที่อัปเดตในขณะนี้:
{ _id: ObjectId("62013d8c4cb04b772fd7a90c"), team: 'Mavs', conference: 'Western', points: 31, teamConf: 'Mavs - Western' } { _id: ObjectId("62013d8c4cb04b772fd7a90d"), team: 'Spurs', conference: 'Western', points: 22, teamConf: 'Spurs - Western' } { _id: ObjectId("62013d8c4cb04b772fd7a90e"), team: 'Rockets', conference: 'Western', points: 19, teamConf: 'Rockets - Western' } { _id: ObjectId("62013d8c4cb04b772fd7a90f"), team: 'Celtics', conference: 'Eastern', points: 26, teamConf: 'Celtics - Eastern' } { _id: ObjectId("62013d8c4cb04b772fd7a910"), team: 'Cavs', conference: 'Eastern', points: 33, teamConf: 'Cavs - Eastern' } { _id: ObjectId("62013d8c4cb04b772fd7a911"), team: 'Nets', conference: 'Eastern', points: 38, teamConf: 'Nets - Eastern' }
โปรดทราบว่าแต่ละเอกสารจะมีฟิลด์ใหม่ชื่อว่า “teamConf” ซึ่งจะมีการต่อข้อมูลระหว่างฟิลด์ “ทีม” และ “การประชุม”
สำหรับตัวอย่างเฉพาะนี้ เราเลือกที่จะเชื่อมสองสายเข้าด้วยกันโดยใช้ยัติภังค์เป็นตัวคั่น
อย่างไรก็ตาม เราสามารถเลือกที่จะเชื่อมสองสายเข้าด้วยกันโดยไม่มีค่าตัวคั่นระหว่างกัน
รหัสต่อไปนี้แสดงวิธีการทำเช่นนี้:
db.teams.aggregate([ { $project : { teamConf: { $concat : [ " $team ", " $conference " ] } } }, { $merge : "teams" } ])
คอลเลกชันที่อัปเดตจะมีลักษณะดังนี้:
{ _id: ObjectId("62013d8c4cb04b772fd7a90c"), team: 'Mavs', conference: 'Western', points: 31, teamConf: 'MavsWestern' } { _id: ObjectId("62013d8c4cb04b772fd7a90d"), team: 'Spurs', conference: 'Western', points: 22, teamConf: 'SpursWestern' } { _id: ObjectId("62013d8c4cb04b772fd7a90e"), team: 'Rockets', conference: 'Western', points: 19, teamConf: 'RocketWestern' } { _id: ObjectId("62013d8c4cb04b772fd7a90f"), team: 'Celtics', conference: 'Eastern', points: 26, teamConf: 'CelticsEastern' } { _id: ObjectId("62013d8c4cb04b772fd7a910"), team: 'Cavs', conference: 'Eastern', points: 33, teamConf: 'CavsEastern' } { _id: ObjectId("62013d8c4cb04b772fd7a911"), team: 'Nets', conference: 'Eastern', points: 38, teamConf: 'NetsEastern' }
โปรดทราบว่าช่องใหม่ชื่อ “teamConf” มีการต่อข้อมูลช่อง “ทีม” และ “การประชุม” เข้าด้วยกันโดยไม่มีค่าการแยกระหว่างช่องเหล่านั้น
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $concat ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
MongoDB: วิธีตรวจสอบว่าฟิลด์มีสตริงหรือไม่
MongoDB: วิธีเพิ่มฟิลด์ใหม่
MongoDB: วิธีลบฟิลด์