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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。