MongoDB为您提供读取操作,以从集合中检索文档或向集合中查询文档。您可以使用db.collection.find()
方法执行读取操作。此方法从集合中选择或查看文档,然后将光标返回到选定的文档。
find()
是一个mongo shell方法,可以在多文档事务中使用。通过此方法显示的文档为非结构化形式。如果要以结构化形式获取数据,则将pretty()
方法与find()
方法一起使用。
db.collection.find().pretty()
此方法自动迭代光标以显示集合的前20个文档。如果您希望此方法将显示20个以上的文档,请键入它以继续迭代。
Syntax:
Parameters:
- filter: It is an optional parameter. It specifies the selection filter with the help of query operators. And if you want to get all the documents present in the collection, then omit these parameters or pass an empty document in the method. The type of this parameter is a Document.
- projection: It is an optional parameter. It specifies that only those fields return to the document that matches the given query filter. And if you want to get all the fields in the document, then omit this parameter. Learn more.
Return: This method returns a cursor to the documents that match the specified query criteria. When you use find() method, it returns documents which means the method is actually returning the cursor to the documents.
例子:
在以下示例中,我们正在使用:
db.collection.find(filter, projection)
选择所有文档:
在此示例中,我们选择了贡献者集合的所有文档,并使用db.collection.find()
方法显示在屏幕上。
句法:
Database: GeeksforGeeks
Collection: contributor
Document: five documents that contain the details of the contributors in the form of field-value pairs.
选择所有组织形式的文档:
在此示例中,我们将选择贡献者集合的所有文档,并使用带有pretty()
方法的db.collection.find()
方法以有组织的形式显示它们。
句法:
db.contributor.find()
选择满足给定条件的文档:
在此示例中,我们仅选择满足给定条件(即语言:“ C#”)的那些文档。换句话说,我们只选择那些使用C#语言的贡献者。
Synatx:
db.contributor.find().pretty()
选择满足给定条件的文档(使用查询运算符):
在此示例中,我们仅选择那些满足给定条件的文档,此处条件是使用查询运算符创建的。换句话说,我们只选择那些使用C#或Java语言的贡献者。
句法:
db.collection.find({field: value})
在这里,我们使用$in
运算符。该运算符用于匹配给定数组中指定的任何值。
db.collection.find({field: {operator: value}})
选择满足给定条件的文档(使用AND条件):
在此示例中,我们正在创建一个复合查询,其中我们使用逻辑AND为多个字段指定条件。在这里,逻辑AND连接复合查询的子句,以便查询仅选择集合中满足所有条件的那些文档。换句话说,在此示例中,我们仅检索来自CSE分支并使用Java语言的那些贡献者。
选择满足给定条件的文档(使用OR条件):
在此示例中,我们将创建一个复合查询,其中我们使用$ or运算符指定条件。在这里,$ or运算符连接复合查询的子句,以便该查询仅选择集合中满足至少一个条件的那些文档。换句话说,在此示例中,我们仅检索那些来自CSE分支或使用Java语言的贡献者。
选择满足给定条件的文档(同时使用AND和OR条件):
在此示例中,我们将同时使用AND和OR运算符设置filter。换句话说,在此示例中,我们仅检索来自ECE分支且年龄为23岁或正在使用Java语言的那些贡献者。