MongoDB查询语句理解

今天在学MongoDB的时候发现有种查询语句不是很明白,于是我试着改变一些参数什么的,来看看到底有什么玄机,经过测试,终于理解是什么意思了。

下面我把我遇到的查询语句贴出来:

> db.col.find({},{"title":1,_id:0}).limit(2)

    {"title":"PHP 教程"}

    {"title":"Java 教程"}

>

当然,我们还需要看一下数据库中完整的数据信息

{ "_id":ObjectId("56066542ade2f21f36b0313a"),"title":"PHP 教程","description":"PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。","by":"菜鸟教程","url":"http://www.runoob.com","tags":["php"],"likes":200}

{"_id":ObjectId("56066549ade2f21f36b0313b"),"title":"Java 教程","description":"Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。","by":"菜鸟教程","url":"http://www.runoob.com","tags":["java"],"likes":150}

{"_id":ObjectId("5606654fade2f21f36b0313c"),"title":"MongoDB 教程","description":"MongoDB 是一个 Nosql 数据库","by":"菜鸟教程","url":"http://www.runoob.com","tags":["mongodb"],"likes":100}


那么,db.col.find({},{"title":1,_id:0}).limit(2)为什么会查询出那种结果呢?

db.col.find({},{title:1,_id:0}).limit(2)  第一个大括号的意思是,要把查询出来的结果以Bson的形式展现出来

db.col.find({},{title:1,_id:0}).limit(2)  第二个大括号的意思是,我们要查询的字段有哪些,属性后面的1或者0代表的意思是查询和不查询的意思,title:1表示要查询这个字段,title:0表示部查询该字段,那么可能你会好奇,既然不想查询_id的值,干嘛要多此一举的写句_id:0吧?经过我的实验,原因是这样的,在查询的时候,如果只写title:1,那么会默认的把_id也查询出来,为了过滤掉_id字段,我们需要加上_id:0。当然了,如果你还想查询更多的字段就在第二个{}里面加就可以了,比如{title:1,_id:0,url:1},这样查询出来的结果如下:

{ "title" : "PHP 教程", "url" : "http://www.runoob.com" }
{ "title" : "Java教程", "url" : "http://www.runoob.com" }

另外,limit(2)代表的是仅查询前2条记录。
经过上面的分析,是不是豁然开朗了呢?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值