最近一个项目中又接触到了mongo数据库,在本次测试过程中,需要自己查据,造数据,又重新整理了一遍用到的命令,以下是笔记整理
在mongodb里面用到的主要概念是文档,是一个分布式文档存储数据库
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
(一)mongo连接进入
1.连接mongodb
$mongo
2.查看mongodb的版本
$db.version()
3.查看当前有哪些数据库(对应sql:show databases)
$show dbs
疑问:当前要是没有切入admin数据库,就无法查看,不清楚原因。。
4.切入admin数据库:(对应sql :use database)
$use admin(和mysql的切换数据库一样)
$db.auth("username","password")
$show dbs
5.查看集合(对应sql show tables)
$show collections(也用show 这里的collections也就是mysql的表概念差不多)
6.查看文档(对应sql: select)
$db.collections_name.find()----无筛选条件,一般情况下不要直接用,数据量太大
$db.collections_name.find({'key':'value'})-----有筛选条件
7.插入文档(对应sql: insert into)
目前用的不多,先记录这么多,不用就算记录下来也还是会忘记
(二)mongo查询语句
(1)查询大于小于,一个区间
$gt 大于
$lte 小于
解释:返回时间大于153456789,小于153479893的记录,限制20条
相当于sql:
$select * from collection where time >153456789 and time
或:$select * from collection where time between 153456789 and 1534798932 limit 20;
(2)模糊匹配
简单的模糊匹配:/string/
高级的模糊匹配,需要用到正则,*,^之类的(需要好好学习正则匹配)
例:$db.collection.find({"address":/顺义区/}).limit(20)
解释:返回address中包含顺义区的记录,限制20条
相当于sql:
$select * from collection where address like"%顺义区%" limit 20;
(3)统计条数
计数:count()
解释:返回collection的记录条数
相当于sql:
$select count(*) from collection;
(4)限制返回条数
limit(n);限制n条记录返回
相当于sql:
$ select * from collectionlimit5;
(5)修改数据
update()
例:
修改多条数据:$db.location_201811.update({'moid':'京AFW272'},{$set:{'moid':'京ABB170'}},)
解释:修改所有数据中车牌:“京AFW272”为“京ABB170”
修改单条数据:$db.location_201811.update({'moid':'京AFW272'},{$set:{'moid':'京ABB170'}})
解释:修改一条数据中车牌:“京AFW272”为“京ABB170”
相当于sql:
$update collection set moid="京ABB170" where moid="京AFW272";
(6)插入数据
insert()和save()都表示插入数据,当insert插入同样的id时会出现异常,save会强制更新掉
(7)返回指定字段的数据
解释:
前面:{"plate":"陕A11111"}:表示查询车牌为:陕A1111的数据
后面:{"plate:1,"address":1,"time":1},表示查询需要返回的字段
tip:
1.mongo规定除过id可以随意设定为0或者1,表示返回或不返回,其余字段不允许交叉设置为0和1的情况
2.即除了_id,你不能在一个对象中同事指定0和1,如果你设置了一个字段为0,则其他未设置的值默认为1,反之亦然
相当于sql:
$select plate,address,time from collection where plate='陕A11111' limit 5;
(8)数据排序
sort({"time":-1})或者sort({"time":1})
解释:
接(7),按照时间倒叙排列,返回车牌为陕A1111,指定字段的5条记录,其中sort方法中,-1表示倒排,如果设置为1,即表示按照时间正序排序
相当于sql:
sort({"time":-1}):按照时间倒叙
$select plate,address,time from collection where plate='陕A11111' order by time desc limit 5;
sort({"time":-1}):按照时间正序
$select plate,address,time from collection where plate='陕A11111' order by time limit 5;
领取专属 10元无门槛券
私享最新 技术干货