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 polymerized (รวม) เป็นหลักสำหรับการประมวลผลข้อมูล (เช่นค่าเฉลี่ยสถิติจำนวนเงิน, ฯลฯ ) และผลตอบแทนของข้อมูลจากการคำนวณที่ ที่คล้ายกันค่อนข้างนับคำสั่ง SQL (*)


รวม () วิธีการ

MongoDB วิธีการใช้พอลิเมอรวม ()

ไวยากรณ์

ไวยากรณ์รวมพื้นฐาน () วิธีการดังต่อไปนี้:

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

ตัวอย่าง

การเก็บรวบรวมข้อมูลเป็นดังนี้:

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100
},
{
   _id: ObjectId(7df78ad8902d)
   title: 'NoSQL Overview', 
   description: 'No sql database is very fast',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 10
},
{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   description: 'Neo4j is no sql database',
   by_user: 'Neo4j',
   url: 'http://www.neo4j.com',
   tags: ['neo4j', 'database', 'NoSQL'],
   likes: 750
},

ตอนนี้เราตั้งค่าดังกล่าวข้างต้นจะถูกคำนวณสำหรับแต่ละจำนวนบทความที่เขียนโดยผู้เขียนใช้รวม () คำนวณดังนี้

> db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
   "result" : [
      {
         "_id" : "w3cschool.cc",
         "num_tutorial" : 2
      },
      {
         "_id" : "Neo4j",
         "num_tutorial" : 1
      }
   ],
   "ok" : 1
}
>

ตัวอย่างที่คล้ายกันข้างต้นคำสั่ง SQL: เลือก by_user นับ (*) จากกลุ่ม mycol โดย by_user

ในตัวอย่างข้างต้นเรา by_user สนามโดยสนามให้กับกลุ่มข้อมูลและคำนวณผลรวมของค่าเดียวกัน by_user สนาม

ตารางต่อไปนี้แสดงให้เห็นถึงการแสดงออกรวมบางส่วน:

การแสดงออก ลักษณะ ตัวอย่าง
$ ซำ คำนวณผลรวม db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" num_tutorial: {$ รวม: "$ ชอบ"}}}])
$ เฉลี่ย การคำนวณค่าเฉลี่ย db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" num_tutorial: {$ เฉลี่ย: "$ ชอบ"}}}])
$ นาที ได้รับการเก็บรวบรวมเอกสารทั้งหมดที่สอดคล้องต่ำสุดคุ้มค่า db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" num_tutorial: {$ นาที: "$ ชอบ"}}}])
$ แม็กซ์ ได้รับคอลเลกชันของเอกสารทั้งหมดที่สอดคล้องกับมูลค่าสูงสุด db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" num_tutorial: {$ Max: "$ ชอบ"}}}])
$ กด ในเอกสารที่เกิดการแทรกค่าลงในอาร์เรย์ db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" URL: {$ ผลักดัน: "$ URL"}}}])
$ AddToSet ในเอกสารที่เกิดการแทรกค่าลงในอาร์เรย์ แต่ไม่ได้สร้างสำเนา db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" URL: {$ addToSet: "$ URL"}}}])
$ แรก เป็นข้อมูลเอกสารแรกตามเอกสารทรัพยากรการจัดเรียง db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" first_url: {$ ครั้งแรก: "$ URL"}}}])
$ ล่าสุด ได้รับข้อมูลเอกสารที่ผ่านมาตามเอกสารทรัพยากรการจัดเรียง db.mycol.aggregate ([{$ กลุ่ม: {_id: "$ by_user" last_url: {$ ล่าสุด: "$ URL"}}}])

แนวคิดของท่อ

ท่อใน Unix และ Linux โดยทั่วไปจะใช้ในการส่งออกคำสั่งปัจจุบันเป็นพารามิเตอร์คำสั่งต่อไป

MongoDB MongoDB ท่อพอลิเมอเอกสารในท่อหลังจากผลมาประมวลผลเพื่อการประมวลผลท่อต่อไป การดำเนินการทางท่อสามารถทำซ้ำได้

นิพจน์: การป้อนข้อมูลการประมวลผลและการส่งออกเอกสาร การแสดงออกเป็นไร้สัญชาติเท่านั้นที่สามารถใช้ในการคำนวณท่อปัจจุบันของเอกสารรวมคุณไม่สามารถจัดการกับเอกสารอื่น ๆ

ที่นี่เราแนะนำกรอบการรวมตัวที่ใช้กันทั่วไปในการดำเนินงานหลายประการ:

  • $ โครงการ: การปรับเปลี่ยนโครงสร้างของเอกสารการป้อนข้อมูล สามารถใช้ในการเปลี่ยนชื่อเพิ่มหรือเอาเขตข้อมูลก็ยังสามารถนำมาใช้ในการสร้างการคำนวณและเอกสารที่ซ้อนกัน
  • $ Match: ใช้ในการกรองข้อมูลเฉพาะการส่งออกของเอกสารที่มีคุณภาพ $ Match ใช้ MongoDB ประกอบแบบสอบถามมาตรฐาน
  • $ จำกัด การ จำกัด จำนวนของเอกสาร MongoDB พอลิเมอท่อกลับ
  • $ ข้ามข้ามจำนวนที่ระบุในเอกสารในท่อพอลิเมอและผลตอบแทนส่วนที่เหลือของเอกสาร
  • $ ผ่อนคลาย: เอกสารถูกแบ่งออกเป็นอาร์เรย์ของข้อมูลพิมพ์ลงในหลายแต่ละอาร์เรย์ที่มีค่า
  • $ กลุ่ม: คอลเลกชันของเอกสารการจัดกลุ่มสามารถนำมาใช้เพื่อให้ได้ผลลัพธ์ทางสถิติ
  • $ ค้นหา: ออกเอกสารการป้อนข้อมูลหลังจากการสั่งซื้อ
  • $ GeoNear: จัดลำดับออกเอกสารใกล้เคียงกับที่ตั้งทางภูมิศาสตร์

ตัวอย่างของผู้ประกอบการท่อ

1, $ ตัวอย่างโครงการ

db.article.aggregate(
    { $project : {
        title : 1 ,
        author : 1 ,
    }}
 );

ในกรณีนี้ผลจะมี _id, tilte และผู้เขียนสามช่องฟิลด์ _id เริ่มต้นคือการจะรวมถ้าสั่งไม่ได้มี _id ถ้ามันสามารถ:

db.article.aggregate(
    { $project : {
        _id : 0 ,
        title : 1 ,
        author : 1
    }});

2. ตัวอย่างการแข่งขัน $

db.articles.aggregate( [
                        { $match : { score : { $gt : 70, $lte : 90 } } },
                        { $group: { _id: null, count: { $sum: 1 } } }
                       ] );

$ Match ถูกนำมาใช้เพื่อให้ได้คะแนนมากกว่า 70 น้อยกว่าหรือเท่ากับ 90 บันทึกแล้วบันทึกที่ตรงกันกับขั้นตอนต่อไปของผู้ประกอบการกลุ่มท่อ $ สำหรับการประมวลผล

3. $ ข้ามเช่น

db.article.aggregate(
    { $skip : 5 });

หลังจากที่ผู้ประกอบการประมวลผลท่อ $ เฮี๊ยบเอกสารครั้งแรกห้าเป็น "กรอง" ออก