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

วิธีเรียงลำดับรายการและเพิ่มตำแหน่ง (Position) ให้กับรายการใน 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);
})

แสดงเอกสารทั้งหมดหลังอัปเดต

> 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 }