如何指定查询在MongoDB中返回匹配文档的顺序

要指定查询返回匹配文档的顺序,请在MongoDB中使用cursor.sort()。光标是db.collectionName.find()。

让我们创建一个包含文档的集合-

> db.demo259.insertOne({"Subject":"MySQL"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ae1f1627c0c63e7dba98")
}
> db.demo259.insertOne({"Subject":"Java"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ae231627c0c63e7dba99")
}
> db.demo259.insertOne({"Subject":"MongoDB"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ae281627c0c63e7dba9a")
}

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

> db.demo259.find();

这将产生以下输出-

{ "_id" : ObjectId("5e47ae1f1627c0c63e7dba98"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5e47ae231627c0c63e7dba99"), "Subject" : "Java" }
{ "_id" : ObjectId("5e47ae281627c0c63e7dba9a"), "Subject" : "MongoDB" }

以下是按特定顺序排序的查询-

> db.demo259.find().sort({"Subject":1});

这将产生以下输出-

{ "_id" : ObjectId("5e47ae231627c0c63e7dba99"), "Subject" : "Java" }
{ "_id" : ObjectId("5e47ae281627c0c63e7dba9a"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5e47ae1f1627c0c63e7dba98"), "Subject" : "MySQL" }