如何使用MongoDB进行排序以连续发布最新的N条记录?

要通过排序发布最新的N条记录,请与sort()一起使用limit()。在此处,设置要显示的记录数limit()。让我们创建一个包含文档的集合-

> db.demo454.insertOne({"ClientName":"Chris"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7cce8cdbcb9adb296c95c0")
}
> db.demo454.insertOne({"ClientName":"John"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7cce95dbcb9adb296c95c1")
}
> db.demo454.insertOne({"ClientName":"Bob"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7cce9fdbcb9adb296c95c2")
}
> db.demo454.insertOne({"ClientName":"David"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7ccea6dbcb9adb296c95c3")
}
> db.demo454.insertOne({"ClientName":"Mike"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7cceafdbcb9adb296c95c4")
}

find()方法的帮助下显示集合中的所有文档-

> db.demo454.find();

这将产生以下输出-

{ "_id" : ObjectId("5e7cce8cdbcb9adb296c95c0"), "ClientName" : "Chris" }
{ "_id" : ObjectId("5e7cce95dbcb9adb296c95c1"), "ClientName" : "John" }
{ "_id" : ObjectId("5e7cce9fdbcb9adb296c95c2"), "ClientName" : "Bob" }
{ "_id" : ObjectId("5e7ccea6dbcb9adb296c95c3"), "ClientName" : "David" }
{ "_id" : ObjectId("5e7cceafdbcb9adb296c95c4"), "ClientName" : "Mike" }

以下是使用SORT()LIMIT()在MongoDB中发布最新N条记录的查询-

> db.demo454.find().sort({ClientName:-1}).limit(3);

这将产生以下输出-

{ "_id" : ObjectId("5e7cceafdbcb9adb296c95c4"), "ClientName" : "Mike" }
{ "_id" : ObjectId("5e7cce95dbcb9adb296c95c1"), "ClientName" : "John" }
{ "_id" : ObjectId("5e7ccea6dbcb9adb296c95c3"), "ClientName" : "David" }