Latest web development tutorials
×

MongoDB หลักสูตร

MongoDB หลักสูตร NoSQL แนะนำโดยย่อ MongoDB แนะนำโดยย่อ Window ติดตั้ง MongoDB Linux ติดตั้ง MongoDB MongoDB การแปลความหมายของแนวคิด MongoDB สัมพันธ์ MongoDB การสร้างฐานข้อมูล MongoDB ลบฐานข้อมูล MongoDB แทรกเอกสาร MongoDB การปรับปรุงเอกสาร MongoDB การลบเอกสาร MongoDB เอกสารแบบสอบถาม MongoDB ผู้ประกอบการที่มีเงื่อนไข MongoDB $type ผู้ประกอบการ MongoDB Limit & Skip MongoDB ลำดับ MongoDB ดัชนี MongoDB การรวมตัว MongoDB สำเนา MongoDB ชิ้น MongoDB สำรองและกู้คืน MongoDB หน้าจอ MongoDB Java MongoDB PHP กระจาย MongoDB PHP MongoDB PHP7

MongoDB การสอนที่ทันสมัย

MongoDB ความสัมพันธ์ MongoDB อ้างอิงฐานข้อมูล MongoDB ครอบคลุมแบบสอบถามดัชนี MongoDB การวิเคราะห์แบบสอบถาม MongoDB การดำเนินงานของอะตอม MongoDB การจัดทำดัชนีขั้นสูง MongoDB ข้อ จำกัด ของดัชนี MongoDB ObjectId MongoDB Map Reduce MongoDB ค้นหาข้อความเต็ม MongoDB นิพจน์ปกติ MongoDB เครื่องมือการจัดการ MongoDB GridFS MongoDB ชุดถาวร MongoDB การเจริญเติบโตอัตโนมัติ

MongoDB เพิ่มขึ้นโดยอัตโนมัติ

MongoDB มีไม่ได้เช่นเดียวกับความสามารถในการ SQL สำหรับการเจริญเติบโตโดยอัตโนมัติ _id MongoDB เป็น 12 ไบต์ที่ระบุระบบสร้างขึ้นโดยอัตโนมัติ

อย่างไรก็ตามในบางกรณีเราอาจจำเป็นต้องใช้คุณลักษณะการเจริญเติบโตมี objectid อัตโนมัติ

เพราะ MongoDB ไม่ใช้คุณสมบัตินี้เราสามารถตั้งโปรแกรมเพื่อให้บรรลุเราจะประสบความสำเร็จในสนามต่อไป _id เติบโตโดยอัตโนมัติเคาน์เตอร์คอลเลกชัน


คอลเลกชันการใช้งานเคาน์เตอร์

พิจารณาเอกสารผลิตภัณฑ์ต่อไปนี้ เราหวังว่าจะประสบความสำเร็จจาก 1,2,3,4 _id ฟิลด์ถึง n คุณลักษณะการเจริญเติบโตโดยอัตโนมัติ

{
  "_id":1,
  "product_name": "Apple iPhone",
  "category": "mobiles"
}

การทำเช่นนี้สร้างชุดของเคาน์เตอร์ค่าฟิลด์ลำดับอัตโนมัติสามารถยาว:

>db.createCollection("counters")

ตอนนี้เราใส่เอกสารต่อไปนี้เพื่อเคาน์เตอร์ในคอลเลกชันที่ใช้เป็นกุญแจสำคัญ ProductID:

{
  "_id":"productid",
  "sequence_value": 0
}

ฟิลด์ sequence_value เป็นลำดับของค่าโดยการเจริญเติบโตโดยอัตโนมัติหลังจากที่

ใช้คำสั่งลำดับต่อไปนี้เพื่อแทรกเคาน์เตอร์เอกสารของคอลเลกชันนี้:

>db.counters.insert({_id:"productid",sequence_value:0})

การสร้างฟังก์ชั่นจาวาสคริ

ตอนนี้เราสร้างฟังก์ชัน getNextSequenceValue เป็นชื่อลำดับการป้อนข้อมูลลำดับที่ระบุจะมีการเติบโตขึ้นโดยอัตโนมัติโดยที่ 1 และส่งกลับค่าลำดับล่าสุด ในตัวอย่างในบทความชุดนี้เรียกว่า ProductID

>function getNextSequenceValue(sequenceName){
   var sequenceDocument = db.counters.findAndModify(
      {
         query:{_id: sequenceName },
         update: {$inc:{sequence_value:1}},
         new:true
      });
   return sequenceDocument.sequence_value;
}

ใช้ฟังก์ชั่นจาวาสคริ

ต่อไปเราจะใช้ฟังก์ชั่ getNextSequenceValue เพื่อสร้างเอกสารใหม่และตั้งค่า _id เอกสารที่มีค่าลำดับอัตโนมัติกลับเป็น:

>db.products.insert({
   "_id":getNextSequenceValue("productid"),
   "product_name":"Apple iPhone",
   "category":"mobiles"})

>db.products.insert({
   "_id":getNextSequenceValue("productid"),
   "product_name":"Samsung S3",
   "category":"mobiles"})

ที่คุณสามารถดูเราจะใช้ฟังก์ชั่นในการตั้ง getNextSequenceValue ฟิลด์ _id

เพื่อตรวจสอบประสิทธิภาพของฟังก์ชั่นที่เราสามารถใช้คำสั่งต่อไปนี้เพื่ออ่านเอกสาร:

>db.products.find()

คำสั่งดังกล่าวจะทำการแสดงผลดังต่อไปนี้เราพบข้อมูล _id เป็นตัวการเจริญเติบโต:

{ "_id" : 1, "product_name" : "Apple iPhone", "category" : "mobiles"}

{ "_id" : 2, "product_name" : "Samsung S3", "category" : "mobiles" }