db.collection.findOne()

在本页面

Definition

Parameter Type Description
query document 可选的。使用query operators指定查询选择条件。
projection document 可选的。指定要使用projection operators返回的字段。省略此参数可返回匹配文档中的所有字段。

projection参数采用以下格式的文档:

{ field1: <boolean>, field2: <boolean> ... }

<boolean>可以是以下包含或排除值之一:

除了排除_id字段外,projection 参数不能混合包含和排除规范。

返回: 一个文档满足指定为该方法的第一个参数的条件。如果指定projection参数,则findOne()返回仅包含projection字段的文档。除非您明确排除_id字段,否则始终将其包括在内。
尽管与find()方法相似,但findOne()方法返回的是文档而不是游标。

Examples

具有空查询规范

以下操作从bios collection返回单个文档:

db.bios.findOne()

具有查询规范

以下操作从bios collection返回第一个匹配的文档,其中嵌入式文档name中的字段first以字母G 开头,其中字段birth小于new Date('01/01/1945')

db.bios.findOne(
   {
     $or: [
            { 'name.first' : /^G/ },
            { birth: { $lt: new Date('01/01/1945') } }
          ]
   }
)

有投影

projection参数指定要返回的字段。该参数包含包含或排除规范,但不能同时包含两者,除非排除是针对_id字段。

指定要返回的字段

以下操作在bios collection中查找文档,并且仅返回namecontribs_id字段:

db.bios.findOne(
    { },
    { name: 1, contribs: 1 }
)

返回所有排除字段

以下操作在bios collection中返回一个文档,其中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));
}
首页