เอกสาร MongoDB มีการปรับปรุง
MongoDBใช้ปรับปรุง () และบันทึก ()วิธีการอัปเดตคอลเลกชันของเอกสาร ลองมาดูรายละเอียดที่แอพลิเคชันและความแตกต่างระหว่างทั้งสองฟังก์ชั่น
การปรับปรุงวิธี ()
ปรับปรุง () วิธีการใช้ในการปรับปรุงเอกสารที่มีอยู่ ไวยากรณ์เป็นดังนี้:
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
พารามิเตอร์คำอธิบาย:
- แบบสอบถาม: สอบถามการปรับปรุงเกณฑ์การคล้ายกับการสอบถามการปรับปรุง SQL ที่ด้านหลังด้านใน
- UPDATE: ปรับปรุงวัตถุและบางส่วนของผู้ประกอบการใหม่ (เช่น $, $ Inc ... ) ฯลฯ นอกจากนี้ยังสามารถเข้าใจเป็นชุดกลับมาภายในสอบถามการปรับปรุงของ SQL
- upsert: ไม่จำเป็นหมายถึงเรื่องนี้ก็คือว่าถ้าไม่มีการปรับปรุงการบันทึกจะถูกแทรก objNew จริงเพื่อแทรกค่าเริ่มต้นเป็นเท็จไม่ได้ใส่
- หลายตัวเลือก: เริ่มต้น MongoDB เป็นเท็จเพียงเพื่อจะพบระเบียนแรกในการปรับปรุงถ้าเรื่องนี้เป็นความจริงตามเงื่อนไขที่ใส่ออกหลายระเบียนตรวจสอบการปรับปรุงทั้งหมด
- writeConcern: ยกเว้นระดับตัวเลือกจะถูกโยนทิ้ง
ตัวอย่าง
เราใส่ Col การเก็บรวบรวมข้อมูลต่อไปนี้:
>db.col.insert({ title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '本教程', url: 'http://www.w3big.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
แล้วเรามีการปรับปรุงชื่อโดยการปรับปรุงวิธี () (ชื่อเรื่อง):
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) # 输出信息 > db.col.find().pretty() { "_id" : ObjectId("56064f89ade2f21f36b03136"), "title" : "MongoDB", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "本教程", "url" : "http://www.w3big.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } >
คุณสามารถเห็นชื่อ (ชื่อเรื่อง) จากเดิม "MongoDB สอน" Update เพื่อ "MongoDB."
ข้อความข้างต้นจะแก้ไขเอกสารที่พบในครั้งแรกถ้าคุณต้องการแก้ไขเอกสารเดียวกันและอื่น ๆ คุณจะต้องตั้งค่าพารามิเตอร์หลายจริง
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
บันทึก () วิธีการ
บันทึก () วิธีการโดยผ่านเอกสารเพื่อแทนที่เอกสารที่มีอยู่ ไวยากรณ์เป็นดังนี้:
db.collection.save( <document>, { writeConcern: <document> } )
พารามิเตอร์คำอธิบาย:
- เอกสารข้อมูลเอกสาร
- writeConcern: ยกเว้นระดับตัวเลือกจะถูกโยนทิ้ง
ตัวอย่าง
ตัวอย่างต่อไปนี้เราแทนที่ _id เป็นข้อมูลเอกสาร 56064f89ade2f21f36b03136:
>db.col.save({ "_id" : ObjectId("56064f89ade2f21f36b03136"), "title" : "MongoDB", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "w3big", "url" : "http://www.w3big.com", "tags" : [ "mongodb", "NoSQL" ], "likes" : 110 })
หลังจากที่เปลี่ยนใหม่จะประสบความสำเร็จที่เราสามารถทำได้ () คำสั่งเพื่อดูข้อมูลหลังจากการเปลี่ยนจากการค้นหา
>db.col.find().pretty() { "_id" : ObjectId("56064f89ade2f21f36b03136"), "title" : "MongoDB", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "w3big", "url" : "http://www.w3big.com", "tags" : [ "mongodb", "NoSQL" ], "likes" : 110 } >
ตัวอย่างเพิ่มเติม
ปรับปรุงเฉพาะระเบียนแรก:
อัพเดททั้งหมด:
เพิ่มเพียงครั้งแรก:
เพิ่มเพิ่มทั้งหมด:
อัพเดททั้งหมด:
ปรับปรุงเฉพาะระเบียนแรก: