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

อัปเดตฟิลด์ MongoDB โดยใช้ค่าของฟิลด์อื่นหรือไม่


คุณสามารถใช้ฟังก์ชันการรวมเพื่ออัปเดตฟิลด์ MongoDB โดยใช้ค่าของฟิลด์อื่น ที่นี่ เราจะสร้างสองคอลเลกชัน:

  • ชื่อ

  • ข้อมูลนักศึกษา

คอลเล็กชัน

แบบสอบถามเพื่อสร้างคอลเลกชันแรกที่มีเอกสารมีดังนี้:

> db.name.insert({"FirstName":"John","LastName":"Smith"});WriteResult({ "nInserted" :1 })

ตอนนี้คุณสามารถแสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์ที่แสดงเอกสาร "ชื่อ" ของคอลเลกชัน:

{ "_id" :ObjectId("5c6c00dd68174aae23f5ef55"), "FirstName" :"John", "LastName" :"Smith"}

คอลเล็กชัน

แบบสอบถามเพื่อสร้างคอลเลกชันที่สองด้วยเอกสารมีดังนี้:

> db.studentInformation.insert({"StudentFirstName":"Carol","StudentLastName":"Taylor"});WriteResult({ "nInserted" :1 })

ตอนนี้คุณสามารถแสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์:

{ "_id" :ObjectId("5c6c013068174aae23f5ef56"), "StudentFirstName" :"Carol", "StudentLastName" :"Taylor"}

ตอนนี้ ให้เราอัปเดตคอลเล็กชัน "ชื่อ" ด้วยคอลเลกชั่นอื่น "studentInformation" แบบสอบถามมีดังนี้:

<ก่อนหน้า>> db.studentInformation.aggregate( [ {"$addFields":{"FullName":{"$concat":["$StudentFirstName"," ","$StudentLastName"]} }}, {"$out ":"name"} ] );

ตอนนี้คุณสามารถตรวจสอบเอกสารของคอลเลกชัน "ชื่อ" แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์ที่แสดงว่าเราได้อัปเดตฟิลด์เรียบร้อยแล้ว:

{ "_id" :ObjectId("5c6c013068174aae23f5ef56"), "StudentFirstName" :"Carol", "StudentLastName" :"Taylor", "FullName" :"Carol Taylor"}