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

ฉันจะสั่งซื้อรายการและเพิ่มตำแหน่งให้กับรายการใน MongoDB ได้อย่างไร


ในการสั่งซื้อรายการ ให้ใช้ sort() ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo581.insertOne({"Name":"Chris","Score":56});{
   "acknowledged" : true, "insertedId" : ObjectId("5e91cbbbfd2d90c177b5bcb6")
}
> db.demo581.insertOne({"Name":"Bob","Score":240});{
   "acknowledged" : true, "insertedId" : ObjectId("5e91cbbbfd2d90c177b5bcb7")
}
> db.demo581.insertOne({"Name":"David","Score":150});{
   "acknowledged" : true, "insertedId" : ObjectId("5e91cbbcfd2d90c177b5bcb8")
}

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

> db.demo581.find();

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

{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb6"), "Name" : "Chris", "Score" : 56 }
{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb7"), "Name" : "Bob", "Score" : 240 }
{ "_id" : ObjectId("5e91cbbcfd2d90c177b5bcb8"), "Name" : "David", "Score" : 150 }

ต่อไปนี้เป็นแบบสอบถามเพื่อสั่งซื้อรายการและเพิ่มตำแหน่งให้กับรายการใน MongoDB -

> db.demo581.createIndex({Score:1})
{
   "createdCollectionAutomatically" : false,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}
> var i = 1;
> db.demo581.find().sort({"Score": 1}).forEach(function (d){
...    d.Position = i;
...    i++;
...    db.demo581.save(d);
... })

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

> db.demo581.find();

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

{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb6"), "Name" : "Chris", "Score" : 56, "Position" : 1 }
{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb7"), "Name" : "Bob", "Score" : 240, "Position" : 3 }
{ "_id" : ObjectId("5e91cbbcfd2d90c177b5bcb8"), "Name" : "David", "Score" : 150, "Position" : 2 }