如何在 MongoDB 中進行自然排序?


使用 $natural 在 MongoDB 中進行自然排序。我們建立一個包含文件的集合 −

> db.demo684.insertOne({Value:10});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea530cea7e81adc6a0b3957")
}
> db.demo684.insertOne({Value:50});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea530d1a7e81adc6a0b3958")
}
> db.demo684.insertOne({Value:60});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea530d4a7e81adc6a0b3959")
}
> db.demo684.insertOne({Value:40});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea530d8a7e81adc6a0b395a")
}

使用 find() 方法從集合中顯示所有文件−

> db.demo684.find();

這將產生以下輸出−

{ "_id" : ObjectId("5ea530cea7e81adc6a0b3957"), "Value" : 10 }
{ "_id" : ObjectId("5ea530d1a7e81adc6a0b3958"), "Value" : 50 }
{ "_id" : ObjectId("5ea530d4a7e81adc6a0b3959"), "Value" : 60 }
{ "_id" : ObjectId("5ea530d8a7e81adc6a0b395a"), "Value" : 40 }

以下是根據 _id 進行排序的查詢 −

> db.demo684.find(). sort({'_id': 1});

這將產生以下輸出−

{ "_id" : ObjectId("5ea530cea7e81adc6a0b3957"), "Value" : 10 }
{ "_id" : ObjectId("5ea530d1a7e81adc6a0b3958"), "Value" : 50 }
{ "_id" : ObjectId("5ea530d4a7e81adc6a0b3959"), "Value" : 60 }
{ "_id" : ObjectId("5ea530d8a7e81adc6a0b395a"), "Value" : 40 }

您還可以使用 $natural −

> db.demo684.find().sort({$natural: 1});

這將產生以下輸出−

{ "_id" : ObjectId("5ea530cea7e81adc6a0b3957"), "Value" : 10 }
{ "_id" : ObjectId("5ea530d1a7e81adc6a0b3958"), "Value" : 50 }
{ "_id" : ObjectId("5ea530d4a7e81adc6a0b3959"), "Value" : 60 }
{ "_id" : ObjectId("5ea530d8a7e81adc6a0b395a"), "Value" : 40 }

更新於: 2020 年 5 月 14 日

705 次瀏覽

開啟你的職業 生涯

完成課程以獲得認證

開始入門
廣告
© . All rights reserved.