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

แสดงระเบียน MongoDB ที่เรียงลำดับอย่างชัดเจนด้วยการข้ามและขีด จำกัด หรือไม่


คุณสามารถทำงานกับกรอบงานรวมและใช้ $sort, $skip และ $limit เพื่อแสดงเรกคอร์ดที่เรียงลำดับอย่างชัดเจนด้วยการข้ามและตั้งค่าขีดจำกัดได้ด้วย ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน

> db.orderedDistinctDemo.insertOne({"Name":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8e0140b992277dae0e9")
}
> db.orderedDistinctDemo.insertOne({"Name":"Larry"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8e5140b992277dae0ea")
}
> db.orderedDistinctDemo.insertOne({"Name":"Larry"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8e7140b992277dae0eb")
}
> db.orderedDistinctDemo.insertOne({"Name":"Sam"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8ea140b992277dae0ec")
}
> db.orderedDistinctDemo.insertOne({"Name":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8ee140b992277dae0ed")
}
> db.orderedDistinctDemo.insertOne({"Name":"Carol"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8f2140b992277dae0ee")
}
> db.orderedDistinctDemo.insertOne({"Name":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8f6140b992277dae0ef")
}
> db.orderedDistinctDemo.insertOne({"Name":"Carol"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccfb8f9140b992277dae0f0")
}

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -

> db.orderedDistinctDemo.find().pretty();

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

{ "_id" : ObjectId("5ccfb8e0140b992277dae0e9"), "Name" : "John" }
{ "_id" : ObjectId("5ccfb8e5140b992277dae0ea"), "Name" : "Larry" }
{ "_id" : ObjectId("5ccfb8e7140b992277dae0eb"), "Name" : "Larry" }
{ "_id" : ObjectId("5ccfb8ea140b992277dae0ec"), "Name" : "Sam" }
{ "_id" : ObjectId("5ccfb8ee140b992277dae0ed"), "Name" : "John" }
{ "_id" : ObjectId("5ccfb8f2140b992277dae0ee"), "Name" : "Carol" }
{ "_id" : ObjectId("5ccfb8f6140b992277dae0ef"), "Name" : "David" }
{ "_id" : ObjectId("5ccfb8f9140b992277dae0f0"), "Name" : "Carol" }

นี่คือแบบสอบถามเพื่อแสดงระเบียนที่เรียงลำดับอย่างชัดเจนด้วยการข้ามและขีด จำกัด -

> db.orderedDistinctDemo.aggregate(
...    { $group : { _id : "$Name" }},
...    { $sort : { _id: 1 }},
...    { $skip : 3 },
...    { $limit : 8 }
... );

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

{ "_id" : "Larry" }
{ "_id" : "Sam" }