原文: https://beginnersbook.com/2017/09/mongodb-query-document-using-find-method/
在我之前的教程中,我使用find()方法查询集合中的所有文档。在本教程中,我们将看到find()方法的用法,以根据给定的条件查询集合中的文档。让我们开始吧。
以 JSON 格式查询所有文档
假设我们在名为beginnersbookdb的数据库中有一个集合students。要获取所有文档,我们使用此命令:
db.students.find()
但是,我们获得的输出不是任何格式且不太可读。为了提高可读性,我们可以使用以下命令格式化 JSON 格式的输出:
db.students.find().forEach(printjson);
或者只是使用pretty() - 它做同样的事情。
db.students.find().pretty()
正如您在下面的屏幕截图中看到的那样,文档是 JSON 格式的。

根据条件查询文档
我们可以根据条件获取所选文档,而不是从集合中获取所有文档。
相等判断:
例如:我想从学生集合中获取"Steve"的数据。这个命令应该是:
db.students.find({StudentName : "Steve"}).pretty()
此命令返回与给定条件匹配的文档。

大于判断:
语法:
db.collection_name.find({"field_name":{$gt:criteria_value}}).pretty()
例如:我想获取年龄> 32的学生的详细信息,那么查询应该是:
db.students.find({"age":{$gt:32}}).pretty()
我有两个符合条件的文档,如下面的屏幕截图所示:

小于判断:
语法:
db.collection_name.find({"field_name":{$lt:criteria_value}}).pretty()
示例:查找 ID 小于 3000 的所有学生。此判断的命令为:
db.students.find({"StudentId":{$lt:3000}}).pretty()
输出:
> db.students.find({"StudentId":{$lt:3000}}).pretty(){"_id" : ObjectId("59bcecc7668dcce02aaa6fed"),"StudentId" : 1001,"StudentName" : "Steve","age" : 30}{"_id" : ObjectId("59bcecc7668dcce02aaa6fee"),"StudentId" : 1002,"StudentName" : "Negan","age" : 42}
不等于判断:
语法:
db.collection_name.find({"field_name":{$ne:criteria_value}}).pretty()
示例:查找 id 不等于 1002 的所有学生。此条件的命令为:
db.students.find({"StudentId":{$ne:1002}}).pretty()
判断:
> db.students.find({"StudentId":{$ne:1002}}).pretty(){"_id" : ObjectId("59bcecc7668dcce02aaa6fed"),"StudentId" : 1001,"StudentName" : "Steve","age" : 30}{"_id" : ObjectId("59bcecc7668dcce02aaa6fef"),"StudentId" : 3333,"StudentName" : "Rick","age" : 35}
以下是另外两个判断:
大于等于判断:
db.collection_name.find({"field_name":{$gte:criteria_value}}).pretty()
小于等于判断:
db.collection_name.find({"field_name":{$lte:criteria_value}}).pretty()
我们在所有命令末尾添加的
pretty()方法不是必需的。它仅用于格式化目的。
