1:创建数据库
我们先查看mongodb中有哪些数据库,如下图所示:
使用如下命令创建数据库,如下图所示:
再次查看所有的数据库,如下图所示:
从上图可以看出,我们创建的数据库并没有展示出来,为了让数据库展示出来,需要向数据库中插入一条数据,如下图所示:
此时再使用刚才的命令,新建的数据库就会展示出来,如下图所示:
2:删除数据库
使用以下命令查看当前在哪个数据库上,如下图所示:
可以看出我们当前所处的数据库就是刚才我们新建的数据库上,所以我们可以使用以下命令来删除刚才新建的数据库。如下图所示:
然后再查看数据库有没有被删除,如下图:
从图中可以看出,刚才我们新建的geek数据库已经被删除了。
3:删除集合(删除表),可以使用命令:db.collection.drop(),如下图所示:
从上图可以看出我们把表ruobi表已经删除。
4:创建集合(表)
命令:db.createCollection(name,options),其中name是集合的名字,options会有以下选项:
命令 | 选项 |
capped | 如果为true,则为创建固定集合。固定集合是指有固定大小的集合,当达到最大值时,会覆盖最早的文档。当该选项设置为true,则必须设置size。 |
autoindexId | 如果为true,自动在_id项创建索引 |
size | 为固定集合设置一个最大值,以KB为单位。 |
max | 指定固定集合中最大文档的数量 |
上述的这些选项都是可选项,如下图所示:
从上图可以看出,我们对集合student设置对最大文档数是2,那我们如果设置第三条数据对时候,则第三条数据会插入成功,并且会替换到最早对文档;
当然,创建集合也不一定要使用上述命令,可以直接向自己想创建的集合中插入数据,直接就创建了集合。如下图所示:
5:更新文档
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
})
其中query相当于sql中where后面的查询条件;update相当于sql中的set;upsert的意思是查询文档是否存在,如果文档存在,该参数设置为true则插入数据,参数为false,则不会插入数据;multi是是否更新多条数据,true,把符合条件的文档都更新,如果是false则只更新一条;writeConcern可选参数,指抛出异常的等级。
从上图可以看出我们更新了整条数据,如果我们想更新某个字段可以使用如下图的方法:
从上图可以看出,我们更新了name等于steven的全部记录,使用了multi等于true,但是在使用multi的时候,第二个参数(也就是sql中的set)中必须使用$set,否则会报错。
还可以在update方法的第三个,第四个参数直接传递true or false来执行是否全部更新还是只更新一条。
从上述的这个命令可以在第三个参数传递true,如果在集合中没有符合第一个参数的文档,则会添加新的文档到集合中。
6:删除文档
db.collection.remove(
<query>,
<justOne>)
query是查询条件,justOne是否删除一条,ture是删除一条,false删除符合条件的全部,默认是false。
从上面的例子可以看出,justOne参数为true时,只删除一条数据,默认不填或者设置为false时,都会把符合条件的文档全部删除。
7:查询文档
db.collection.find(query, projection)
query是查询条件,projection是要显示的字段。如下图:
从上图第一个命令行可以看出,我们查询的是name等于steven的相关信息,会显示全部字段;第二个命令展示的是姓名等于steven的相关信息,但是只显示score字段内容;第三个命令展示的是姓名等于steven的相关信息,但是展示的是除score字段以外的其它字段。
使用and
>db.col.find({key1:value1, key2:value2}).pretty()还可以使用以下的命令
db.col.find({$and:[{key1 : value1, key2 : value2}]}).pretty()
or的用法和and的用法是一样的,下面我们列举一下and和or同时使用的情况,如下图所示:
以上就是mongodb简单的增删改查操作
如果想查看更多,更关注公众号:我要一幕天