学习笔记之MongoDB进阶(一)

来源:互联网 发布:淘宝被关闭了怎么激活 编辑:程序博客网 时间:2024/05/21 17:48
MongoDB的条件操作符

MongoDB中条件操作符有:

(>) 大于 - $gt(<) 小于 - $lt(>=) 大于等于 - $gte(<= ) 小于等于 - $lte$gt -------- greater than  >$gte --------- gt equal  >=$lt -------- less than  <$lte --------- lt equal  <=$ne ----------- not equal  !=$eq  --------  equal插入数据:db.col.insert({title: 'MongoDB 进阶',     des: 'MongoDB的运算符号',    by: 'youns',    url: 'http://www.col.com',    likes: 100})db.col.insert({title: 'MongoDB 进阶',     des: 'MongoDB的运算符号',    by: 'youns',    url: 'http://www.col.com',    likes: 200})db.col.insert({title: 'MongoDB 进阶',     des: 'MongoDB的运算符号',    by: 'youns',    url: 'http://www.col.com',    likes: 300})#####大于($gt)使用语法:db.col.find({"likes" : {$gt : 100}})使用结果:{ "_id" : ObjectId("5a387ccde9ba01b2b3d3d946"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 200 }{ "_id" : ObjectId("5a387cd2e9ba01b2b3d3d947"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 300 }其他三种用法参考大于的用法

介绍大于和小于联合使用用法

若想获取likes大于100,且小于300的数据,则可以参考以下用法:db.col.find({likes:{$gt:100,$lt:300}})使用结果:{ "_id" : ObjectId("5a387ccde9ba01b2b3d3d946"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 200 }

类型符$type

Double  1   String  2   Object  3   Array   4   Binary data 5   Undefined   6   已废弃。Object id   7   Boolean 8   Date    9   Null    10  Regular Expression  11  JavaScript  13  Symbol  14  JavaScript (with scope) 15  32-bit integer  16  Timestamp   17  64-bit integer  18  Min key 255 Query with -1.Max key 127 使用方法:取title为类型 2String类型的数据db.col.find({"title" : {$type : 2}})
Limit/Skip/Sort用法

Limit:指定读取几条记录
基础用法:
db.col.find().limit(NUMBER)

Skip:指定忽略多少条数据之后,再显示数据
基础用法:
db.col.find().limit(NUMBER).skip(NUMBER)

用例:显示一条数据:> db.col.find().limit(1){ "_id" : ObjectId("5a387cc4e9ba01b2b3d3d945"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 100 }显示一条数据,但要先跳过一条数据> db.col.find().limit(1).skip(1){ "_id" : ObjectId("5a387ccde9ba01b2b3d3d946"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 200 }是对比来看俩次的结果,可加深对skip理解:一般来说对于需同时使用limit和skip的情况建议将skip写在前面,如下:>db.col.find().skip().limit()而根据官方的Api来看:Skip和limit联合使用,只适合小数据量的查询,当数据量较庞大时不太适合

Sort:用来排序,指定顺序还是倒序
基础语法:

>db.col.find().sort({KEY:1})key:1,依据key值进行正序输出key:-1,依据key值进行倒序输出//倒序显示likes大于23的数据>db.col.find({likes:{$gt:23}}).sort({"likes":-1})结果:{ "_id" : ObjectId("5a387cd2e9ba01b2b3d3d947"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 300 }{ "_id" : ObjectId("5a387ccde9ba01b2b3d3d946"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 200 }{ "_id" : ObjectId("5a387cc4e9ba01b2b3d3d945"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 100 }//在前一基础上,选择所显示的数据,如下:>db.col.find({likes:{$gt:23}},{"title":1,likes:1}).sort({"likes":-1}){ "_id" : ObjectId("5a387cd2e9ba01b2b3d3d947"), "title" : "MongoDB 进阶", "likes" : 300 }{ "_id" : ObjectId("5a387ccde9ba01b2b3d3d946"), "title" : "MongoDB 进阶", "likes" : 200 }{ "_id" : ObjectId("5a387cc4e9ba01b2b3d3d945"), "title" : "MongoDB 进阶", "likes" : 100 }> db.col.find({likes:{$gt:23}},        {"title":1,_id:0}).sort({"likes":-1}){ "title" : "MongoDB 进阶" }{ "title" : "MongoDB 进阶" }{ "title" : "MongoDB 进阶" }对比结果我们可以看到:_id是默认显示的,而若想让某一字段数据显示可设置为1,不显示为0

以上就是查询和排序的总结,整理以上,我们来写一个相对复杂的语句

//查询集合内数据>db.col.find(){ "_id" : ObjectId("5a387cd2e9ba01b2b3d3d947"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 300 }{ "_id" : ObjectId("5a388562e9ba01b2b3d3d948"), "title" : { "$type" : 2 } }{ "_id" : ObjectId("5a38a94de9ba01b2b3d3d949"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 100 }{ "_id" : ObjectId("5a38a960e9ba01b2b3d3d94a"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 50 }{ "_id" : ObjectId("5a38a98de9ba01b2b3d3d94b"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 99 }{ "_id" : ObjectId("5a38aac2e9ba01b2b3d3d94c"), "title" : "MongoDB 进阶", "des" : "MongoDB的运算符号", "by" : "youns", "url" : "http://www.col.com", "likes" : 200 }//查询likes小于300,省略一条数据,显示俩条数据,隐藏_id,显示title和likes>db.col.find({likes:{$lt:300}},{title:1,_id:0,likes:1}).sort({likes:-1}).skip(1).limit(2)结果:{ "title" : "MongoDB 进阶", "likes" : 100 }{ "title" : "MongoDB 进阶", "likes" : 99 }
以上就是此次的学习记录,只是我以自己的方式进行的一个归纳总结,若有不足望提出,会及时改正。
原创粉丝点击