MongoDB中的findOne()方法的用法

mongoDB中findOne()的用法介绍

定义db.collection.findOne(queryprojection)

返回一个文档满足指定的查询条件。如果多个文档满足查询,该方法返回第一个文档根据自然秩序反映了磁盘上文件的顺序。在限制集合,自然秩序是一样的插入顺序。如果没有文档满足查询,方法返回null。

参数

类型

描述

查询

文档

可选,使用查询操作符指定查询选择标准。

投影

文档

可选,指定的字段返回使用投影操作符。省略该参数返回匹配文档中所有字段。

使用投影文档的一个参数形式如下:

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

<布尔>类型可以用以下包括或排除值之一:

.包括1或者正确的。这个findOne()方法永远包含了_id域甚至并没有显式地指定字段的投影参数。

.0或者错误是排除的。

当然投影参数也不能混合包括和排除规范,除了扣除_id字段外。

返回情况:

         满足条件的一个文档指定为这个方法的第一个参数。如果你指定一个投影参数,那么findOne()返回一个文档,只包含了你投影的字段,_id字段总是包括的,除非你明确的排除它。

         尽管find()方法和这个方法很类似,但是findOne()方法返回是一个文档为而不是游标。

举例:

         以下操作返回一个文档从user集合:

         db.user.findOne()

查询规范:

         下面的一个操作返回了第一个匹配的文档是从user集合的字段嵌入文档中的第一个名称开头字母G或者参数不等于这个new的日期;

db.user.findOne({$or:[{‘name.first’:/^G/},

{

birth:{$lt:new Date(‘01/01/1945’)}}

]

}

)

使用投影:

         投影参数指定的字段返回。参数包含包括或者排除规范,不是两个,除非排除_id字段。下面的这个操作在user中找到这个文档集合和只返回名称、contribs和id字段:

db.user.findOne(

{ },

{name:1,contribs:1}

)

返回所有且不包括的字段

   下面的操作返回文档在USER集合contrib字段包含的元素OOP和返回所有字段,除了_id字段。第一个字段嵌入文档中,和birth字段;

db.user.findOne(
   { contribs:'OOP' },
   { _id:0,'name.first':0, birth:0 }
)

得到结果是文档:

        无法使用游标方法得到findOne()的结果,因为是返回的一个文档,可以直接访问这个文档。此时游标是关闭的。

var myDocument = db.user.findOne();
if (myDocument) {
   var myName = myDocument.name;
   print (tojson(myName));
}

下面以runoob为例,附find()和findOne()方法的区别:


加入条件查询:


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值