Mongodb: วิธีแยกสตริงออกเป็นอาร์เรย์ของสตริงย่อย


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแยกสตริงออกเป็นอาร์เรย์ของสตริงย่อยใน MongoDB:

 db.myCollection.aggregate([
  { $project : { split_field: { $split : [ " $field1 ", " " ] } } },
  { $merge : "myCollection" }
])

ตัวอย่างเฉพาะนี้แยกสตริง “field1” ตามช่องว่างลงในฟิลด์ใหม่ชื่อ “split_field” และเพิ่มฟิลด์ใหม่ให้กับคอลเลกชันที่ชื่อ myCollection

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติกับ ทีม เรียกเก็บเงิน โดยมีเอกสารต่อไปนี้:

 db.teams.insertOne({name: " Dallas Mavs ", points: 31})
db.teams.insertOne({name: " San Antonio Spurs ", points: 22})
db.teams.insertOne({name: " Houston Rockets ", points: 19})
db.teams.insertOne({name: " Boston Celtics ", points: 26})
db.teams.insertOne({name: " Cleveland Cavs ", points: 33})

ตัวอย่าง: แยกสตริงออกเป็นอาร์เรย์ของสตริงย่อยใน MongoDB

เราสามารถใช้โค้ดต่อไปนี้เพื่อแยกสตริงในคอลัมน์ “ชื่อ” ออกเป็นอาร์เรย์ของสตริงและแสดงผลลัพธ์ในฟิลด์ใหม่ชื่อ “split_name” ในคอลเลก ชันทีม :

 db.teams.aggregate([
  { $project : { split_name: { $split : [ " $name ", " " ] } } },
  { $merge : "teams" }
])

นี่คือลักษณะของคอลเลกชันที่อัปเดตในขณะนี้:

 { _id: ObjectId("62014a924cb04b772fd7a938"),
  name: 'Dallas Mavs',
  points: 31,
  split_name: ['Dallas', 'Mavs'] }
{ _id: ObjectId("62014a924cb04b772fd7a939"),
  name: 'San Antonio Spurs',
  points: 22,
  split_name: ['San', 'Antonio', 'Spurs'] }
{ _id: ObjectId("62014a924cb04b772fd7a93a"),
  name: 'Houston Rockets',
  points: 19,
  split_name: ['Houston', 'Rockets'] }
{ _id: ObjectId("62014a924cb04b772fd7a93b"),
  name: 'Boston Celtics',
  points: 26,
  split_name: ['Boston', 'Celtics'] }
{ _id: ObjectId("62014a924cb04b772fd7a93c"),
  name: 'Cleveland Cavs',
  points: 33,
  split_name: ['Cleveland', 'Cavs'] }

โปรดทราบว่าแต่ละเอกสารจะมีฟิลด์ใหม่ที่เรียกว่า “split_name” ซึ่งมีอาร์เรย์ของสตริงย่อยของฟิลด์ “name”

สำหรับตัวอย่างนี้ เราเลือกที่จะแยกสตริงต้นฉบับโดยใช้ช่องว่างเป็นตัวคั่น

หากสตริงถูกคั่นด้วยตัวคั่นอื่น (เช่น ยัติภังค์ เครื่องหมายทับ โคลอน ฯลฯ) เพียงใช้ตัวคั่นนั้นในฟังก์ชัน $split

หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $split ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:

MongoDB: วิธีตรวจสอบว่าฟิลด์มีสตริงหรือไม่
MongoDB: วิธีเพิ่มฟิลด์ใหม่
MongoDB: วิธีลบฟิลด์

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *