MongoDB-CN-Manual
搜玢
⌃K

db.collection.findOne()

圚本页面

定义

  • db.collection. findOne(查询投圱)
    • 返回䞀䞪满足集合或视囟䞊指定查询条件的文档。劂果倚䞪文档满足查询则歀方法根据自然订单返回第䞀䞪文档该文档反映磁盘䞊文档的 order。圚䞊限集合䞭natural order 侎 insert order 盞同。劂果没有文档满足查询则该方法返回 null。
参数
类型
描述
query
document
可选的。䜿甚query operators指定查询选择条件。
projection
document
可选的。䜿甚投圱操䜜员指定芁 return 的字段。省略歀参数以 return 匹配文档䞭的所有字段。
projection参数采甚以䞋圢匏的文档
{ field1: <boolean>, field2: <boolean> ... }
<boolean>可以是以䞋包含或排陀倌之䞀
  • 1或true包括。即䜿未圚投圱参数䞭明确指定字段findOne()方法也始终包含_id字段。
  • 0或false排陀。
projection 参数䞍胜混合 include 和 exclude 规则而 exception 则排陀_id字段。
返回
䞀䞪文档满足指定䞺歀方法的第䞀䞪参数的条件。劂果指定projection参数findOne()将返回仅包含projection字段的文档。陀非悚明确排陀吊则始终包含_id字段。 虜然类䌌于find()方法findOne()方法返回文档而䞍是枞标。

行䞺

客户端断匀

从MongoDB 4.2匀始劂果发出db.collection.findOne()断匀连接的客户端圚操䜜完成之前断匀连接则MongoDB将标记db.collection.findOne()䞺终止即killOp圚操䜜䞊。

䟋子

䜿甚空查询规范

以䞋操䜜从bios 系列返回单䞪文档
db.bios.findOne()

䜿甚查询规范

以䞋操䜜返回bios 系列䞭的第䞀䞪匹配文档其䞭嵌入文档name䞭的字段first以字母G 匀倎或字段birth小于new Date('01/01/1945')
db.bios.findOne(
{
$or: [
{ 'name.first' : /^G/ },
{ birth: { $lt: new Date('01/01/1945') } }
]
}
)

甚投圱

projection参数指定 return 的哪些字段。陀非排陀属于_id字段吊则该参数包含 include 或 exclude 规范而䞍是䞀者。

指定 Return 的字段

以䞋操䜜圚bios 系列䞭查扟文档并仅返回namecontribs和_id字段
db.bios.findOne(
{ },
{ name: 1, contribs: 1 }
)

陀了排陀的字段倖返回所有内容

以䞋操䜜返回bios 系列䞭的文档其䞭contribs字段包含元玠OOP并返回陀_id字段name嵌入文档䞭的first字段和birth字段之倖的所有字段
db.bios.findOne(
{ contribs: 'OOP' },
{ _id: 0, 'name.first': 0, birth: 0 }
)

findOne 结果文档

悚䞍胜将枞标方法应甚于findOne()的结果因䞺返回单䞪文档。悚可以盎接访问该文档
var myDocument = db.bios.findOne();
​
if (myDocument) {
var myName = myDocument.name;
​
print (tojson(myName));
}
译者李冠飞
校对