🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# MongoDB 使用`find()`方法查询文档 > 原文: [https://beginnersbook.com/2017/09/mongodb-query-document-using-find-method/](https://beginnersbook.com/2017/09/mongodb-query-document-using-find-method/) 在我之前的教程中,我使用`find()`方法查询集合中的所有文档。在本教程中,我们将看到`find()`方法的用法,以根据给定的条件查询集合中的文档。让我们开始吧。 ## 以 JSON 格式查询所有文档 假设我们在名为`beginnersbookdb`的数据库中有一个集合`students`。要获取所有文档,我们使用此命令: ```js db.students.find() ``` 但是,我们获得的输出不是任何格式且不太可读。为了提高可读性,我们可以使用以下命令格式化 JSON 格式的输出: ```js db.students.find().forEach(printjson); ``` 或者只是使用`pretty()` - 它做同样的事情。 ```js db.students.find().pretty() ``` 正如您在下面的屏幕截图中看到的那样,文档是 JSON 格式的。 ![MongoDB query document in JSON format](https://img.kancloud.cn/09/e7/09e703a08721411595ceba61583429a1_537x403.jpg) ## 根据条件查询文档 我们可以根据条件获取所选文档,而不是从集合中获取所有文档。 **相等判断:** 例如:我想从学生集合中获取`"Steve"`的数据。这个命令应该是: ```js db.students.find({StudentName : "Steve"}).pretty() ``` 此命令返回与给定条件匹配的文档。 ![MongoDB Query Document Equality Criteria](https://img.kancloud.cn/3c/77/3c776205b26d8cb44f5bfbce822cde24_470x183.jpg) **大于判断:** 语法: ```js db.collection_name.find({"field_name":{$gt:criteria_value}}).pretty() ``` 例如:我想获取年龄`> 32`的学生的详细信息,那么查询应该是: ```js db.students.find({"age":{$gt:32}}).pretty() ``` 我有两个符合条件的文档,如下面的屏幕截图所示: ![MongoDB Query Document GreaterThan Criteria](https://img.kancloud.cn/cb/c6/cbc6b9e8dc7d410bff2541fcb1f840c4_470x298.jpg) **小于判断:** 语法: ```js db.collection_name.find({"field_name":{$lt:criteria_value}}).pretty() ``` 示例:查找 ID 小于 3000 的所有学生。此判断的命令为: ```js db.students.find({"StudentId":{$lt:3000}}).pretty() ``` 输出: ```js > 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 } ``` **不等于判断:** 语法: ```js db.collection_name.find({"field_name":{$ne:criteria_value}}).pretty() ``` 示例:查找 id 不等于 1002 的所有学生。此条件的命令为: ```js db.students.find({"StudentId":{$ne:1002}}).pretty() ``` 判断: ```js > 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 } ``` 以下是另外两个判断: **大于等于判断:** ```js db.collection_name.find({"field_name":{$gte:criteria_value}}).pretty() ``` **小于等于判断:** ```js db.collection_name.find({"field_name":{$lte:criteria_value}}).pretty() ``` > 我们在所有命令末尾添加的`pretty()`方法不是必需的。它仅用于格式化目的。