原文: https://beginnersbook.com/2017/09/mongodb-sort-method/

在本教程中,我们将学习如何使用sort()方法对文档进行排序。

使用sort()方法对文档进行排序

使用sort()方法,您可以根据文档的特定字段按升序或降序对文档进行排序。

sort()方法的语法:

  1. db.collecttion_name.find().sort({field_key:1 or -1})

1 表示升序,-1 表示降序。默认值为 1。

例如:集合studentdata包含以下文档:

  1. > db.studentdata.find().pretty()
  2. {
  3. "_id" : ObjectId("59bf63380be1d7770c3982af"),
  4. "student_name" : "Steve",
  5. "student_id" : 2002,
  6. "student_age" : 22
  7. }
  8. {
  9. "_id" : ObjectId("59bf63500be1d7770c3982b0"),
  10. "student_name" : "Carol",
  11. "student_id" : 2003,
  12. "student_age" : 22
  13. }
  14. {
  15. "_id" : ObjectId("59bf63650be1d7770c3982b1"),
  16. "student_name" : "Tim",
  17. "student_id" : 2004,
  18. "student_age" : 23
  19. }

假设我想以降序显示所有文档的student_id

要仅显示特定的文档字段,我使用的是 MongoDB 投影

  1. > db.studentdata.find({}, {"student_id": 1, _id:0}).sort({"student_id": -1})
  2. { "student_id" : 2004 }
  3. { "student_id" : 2003 }
  4. { "student_id" : 2002 }

要以升序显示所有学生的student_id字段:

  1. > db.studentdata.find({}, {"student_id": 1, _id:0}).sort({"student_id": 1})
  2. { "student_id" : 2002 }
  3. { "student_id" : 2003 }
  4. { "student_id" : 2004 }

默认值:默认为升序,所以如果我在sort()方法中没有提供任何值,那么它将按升序对记录进行排序,如下所示:

  1. > db.studentdata.find({}, {"student_id": 1, _id:0}).sort({})
  2. { "student_id" : 2002 }
  3. { "student_id" : 2003 }
  4. { "student_id" : 2004 }

您还可以根据您不想显示的字段对文档进行排序:例如,您可以根据student_id对文档进行排序,并显示student_agestudent_name字段。

MongoDB `sort()`方法 - 图1