findOne()方法查找并返回一个与给定选择标准匹配的文档。如果多个文档满足给定的查询表达式,则此方法将根据反映磁盘上文档顺序的自然顺序返回第一个文档。如果没有文档符合选择标准,则此方法将返回null。它有两个参数,第一个是查询条件,另一个是可选的。
- 如果要查找嵌入式文档的字段,请使用以下语法:
“field.nestedfieldname”:<value>
or
{field:{nestedfieldname:<value>}}
- 通过此方法返回的文档始终包含_id字段。如果您不需要_id字段,请在投影中设置_id:0。
用法:
db.Collection_Name.findOne(
query:<document>,
projection:<document>
)
参数:
- 第一个参数是集合上的查询条件。
- 其他是可选的。
可选参数:
projection:projection参数确定哪些字段返回到匹配的文档。 projection参数采用一个包含field:value对的文档:
{field1:<value1>, field:<value2>…}
这里,
- <field>:<1或true>:它意味着我们 指明 包含一个字段。
- <field>:<0或false>:它意味着我们 指明 排除字段。
- “<field>.$”:<1或true>:在这里,通过使用$数组投影运算符 我们指定投影以返回与数组字段上给定查询表达式匹配的第一个元素。
- <field>:<array projection>:在这里,通过使用数组投影运算符,我们通过排除那些包含以下内容的数组项来指定要包含的数组项做不比赛给定的表达式。
- <field>:<$元表达式>:在这里,通过使用$meta表达式运算符,我们指定包含可用的per-document元数据。
- <field>:<聚合表达式>:它手段我们指定投影字段的值。
返回:
它在集合中返回一个具有指定查询条件的匹配文档。如果指定了投影参数,则is方法将返回仅包含投影字段的文档。
例子:
在以下示例中,我们正在使用:
Database: gfg
Collections: student
Document: Three documents contains name and the language in which they are interested.
- 使用空查询规范时,它将返回集合中的第一个文档:
db.student.findOne()
- 返回包含指定字段的第一个文档:
db.student.findOne({language:"python"})
- 返回包含语言字段的第一个文档:
db.student.findOne({language:"c++"})
- 使用投影查找文档:
db.student.findOne({name:"Avinash"}, {_id:0, language:1})
在这里,我们找到一个名为“Avinash”的文档,只想显示Avinash知道的语言。因此,在投影文档中,我们将language字段的值设置为1并将_id的值设置为0。
相关用法
- Mongoose findOne()用法及代码示例
- MongoDB Update()用法及代码示例
- MongoDB skip()用法及代码示例
- MongoDB limit()用法及代码示例
- MongoDB FindAndModify()用法及代码示例
- MongoDB sort()用法及代码示例
- MongoDB countDocuments()用法及代码示例
- MongoDB getIndexes()用法及代码示例
- MongoDB Distinct()用法及代码示例
- MongoDB dropIndex()用法及代码示例
- MongoDB findOneAndDelete()用法及代码示例
注:本文由纯净天空筛选整理自nikhilchhipa9大神的英文原创作品 MongoDB – FindOne() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。