1、基础知识
1.1 show dbs //查看所有数据库
1.2 use XXX //进入某个数据库,如果没有这个数据库的话,进入之后进行了插入操作,那么就会自动产生该数据库,也就是说在进行插入之前可以不用进行数据库的创建过程
1.3 use XXX
db.dropDatabase() //删除该XXX数据库
db.XXX(表名).drop() //删除该XXX数据库中的一张表
1.4 use XXX
show tables //查询某个数据库XXX中所有的表
在mongodb中是show collections(集合),现在看起来二者是相同的用法(如果后面的学习发现有不同再回来补充,可以看看https://www.2cto.com/database/201201/116110.html)
2、数据写入
2.1 use test
db.test_first.insert({x:1}) //insert需要一个参数,这个参数就是要写入的文档,采用josn结构,使用可嵌套的键值对存储数据。
show collections //查询数据库中的集合
2.2 可以运用JS语法进行写入 :
2.3 同时插入多条数据
insert 默认插入一条数据,和insertOne()作用差不多,同时插入多条数据用insertMany() (3.2版本以上)
db.XXX.insertMany([{},{},{}......]) //记住有个[ ],插入数组,插入后会自动出现acknowledged 及自动分配的高ID
3、数据查询
use XXX
db.XXX.find(); //返回集合里面所有数据
db.XXX.find({x:5}) //返回集合里面x=5的数据,其他数据被过滤
db.XXX.find().count() //对集合里面所有数据计数
db.XXX.find().skip(3).limit(5).sort({x:1}) //对集合里面数据进行跳过前3条,限制输出5条,并按照x进行升序排序(1是升序,-1是降序)
注:skip()、limit()、sort()三者先执行sort,然后skip,最后limit
4、数据更新
4.1 db.XXX.update({x:10},{y:999}) //将x=10的数据更新为y=999 (mongodb的文档内容不像关系型数据库那样规定好,所以可以很方便的进行各种更新)
,{$set:{y=99}}) //进行部分更新,查询z=100的数据,将其中的y的值改成99,其余部分不变,$set表示部分更改
如果写成 db.XXX.update({z=100},{y=99}),就会将原来的x=100,y=100,z=100,改变成y=99,x,z的值都会被覆盖掉
4.3 更新一条不存在的数据
db.XXX.update({y:100},{y:999},true) //后面加true(upsert参数)表示查找y=100的数据,如果找到就更新为y=999,如果找不到就自动插入y=999这条数据
扩展:通过上面这个例子可以看到,如果不存在这条数据的话用$set是没用的,还是只插入y=999,不会将x=100,z=100也插入进来。
4.4 更新多条数据
和insert一样每次只会更新一条数据,insert插入多条数据是将upsert参数改为true,update更新多条数据是将multi参数改为true
4.5 补充
参看网站:http://www.runoob.com/mongodb/mongodb-update.html
5、数据删除
5.1 为了防止误操作,remove不允许参数为空
5.2 db.XXX,remove({x:100}) //remove只有一个参数