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

แบบสอบถาม MongoDB เพื่อดึงค่าสุ่มโดยใช้แนวคิด Map Reduce


สำหรับค่าสุ่มด้วย Map Reduce ให้ใช้แนวคิด mapReduce() ร่วมกับ Math.random() ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo651.insertOne({Value:10});{ "acknowledged" :true, "insertedId" :ObjectId("5e9f0330e3c3cd0dcff36a57")}> db.demo651.insertOne({Value:20});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e9f0332e3c3cd0dcff36a58")}> db.demo651.insertOne({Value:30});{ "acknowledged" :true, "insertedId"") :ObjectId("3c3c3f0335dd" db.demo651.insertOne({Value:40});{ "acknowledged" :true, "insertedId" :ObjectId("5e9f0337e3c3cd0dcff36a5a")}> db.demo651.insertOne({Value:50});{ "รับทราบ":จริง "insertedId" :ObjectId("5e9f0339e3c3cd0dcff36a5b")}> db.demo651.insertOne({Value:60});{ "รับทราบ" :จริง "insertedId" :ObjectId (") insertOne({Value:70});{ "acknowledged" :true, "insertedId" :ObjectId("5e9f033ee3c3cd0dcff36a5d")}> db.demo651.insertOne({Value:80});{ "acknowledged" :true, "insertedId" " :ObjectId("5e9f0340e3c3cd0dcff36a5e")}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo651.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5e9f0330e3c3cd0dcff36a57"), "Value" :10 }{ "_id" :ObjectId("5e9f0332e3c3cd0dcff36a58"), "Value" :20 }{ "_id"(5dcffa3cd0dc) , "ค่า" :30 }{ "_id" :ObjectId("5e9f0337e3c3cd0dcff36a5a"), "ค่า" :40 }{ "_id" :ObjectId("5e9f0339e3c3cd0dcff36a5b"), "Value" :50 :"5e9f033be3c3cd0dcff36a5c"), "ค่า" :60 }{ "_id" :ObjectId("5e9f033ee3c3cd0dcff36a5d"), "ค่า" :70 }{ "_id" :ObjectId("5e9f033ee3c3cd0dcff36a5d"), "Value" :70 }{ "_id" :ObjectId("5e9f033e3cpre":> 

ต่อไปนี้เป็นแบบสอบถามเพื่อดึงข้อมูล -

> map =function() {...... if (Math.random() <0.1) {... emit(this._id, this);... }... }ฟังก์ชัน () { ถ้า (Math.random() <0.1) { ปล่อย (this._id, นี่); }}>> ลด =ฟังก์ชั่น (คีย์, ค่า) {... คืนค่า;... }ฟังก์ชัน (คีย์, ค่า) { คืนค่า;}>> db.demo651.mapReduce ( แผนที่ ลด { ออก:' demo_651' } );{ "ผลลัพธ์" :"demo_651", "timeMillis" :1104, "นับ" :{ "อินพุต" :8, "ปล่อย" :1, "ลด" :0, "เอาต์พุต" :1 }, "ตกลง" :1}> db.demo_651.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5e9f033be3c3cd0dcff36a5c"), "value" :{ "_id" :ObjectId("5e9f033be3c3cd0dcff36a5c"), "Value" :60 } }