MongoDB为您提供读取操作,以从集合中检索嵌入/嵌套的文档,或在集合中查询嵌入/嵌套的文档。您可以使用db.collection.find()方法执行读取操作。此方法选择或查看集合的嵌入/嵌套文档,然后将光标返回到所选文档。
Syntax: db.collection.find(filter, projection)
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.
访问嵌入/嵌套的文档–
在MongoDB中,您可以使用点表示法访问集合的嵌套/嵌入文档的字段,并且当您使用点表示法时,该字段和嵌套字段必须在引号内。
句法:
"field.nestedField": value
在以下示例中,我们正在使用:
Database: GeeksforGeeks
Collection: Courses
Document: three documents that contain the details of the students in the form of field-value pairs.
匹配的嵌入/嵌套文档–
在此示例中,我们将检索与给定嵌入文档完全匹配的文档。
db.Courses.find({name: {first: "Rohit",
middle: "Kumar",
last: "Singh"}}).pretty()
选择与嵌套字段匹配的文档–
在此示例中,我们将检索与指定的嵌套字段匹配的文档。
db.Courses.find({"courseDetails.name": "Java Backend Development"}).pretty()
选择与嵌套字段匹配的文档(使用查询运算符)–
在此示例中,我们使用查询运算符检索与嵌套字段匹配的文档。在这里,在查询中,我们使用$ in运算符。该运算符用于匹配给定数组中指定的任何值。
db.Courses.find({"name.first": {$in: ["Rohit", "Mohit"]}}).pretty()
选择与嵌套字段匹配的文档(使用AND条件)–
在此示例中,我们将检索与嵌套字段匹配的文档。
db.Courses.find({"courseDetails.name": "Sudo GATE 2020",
"name.first": "Mohit"}).pretty()
从嵌入/嵌套文档中获取指定的字段:
在此示例中,我们使用投影从嵌入/嵌套文档中检索字段。
db.Courses.find({branch: "CSE"}, {"name.first": 1,
"name.last": 1}).pretty()