MongoDB操作指令

一、入门指令

1、查看数据库
show dbs  查看当前有哪些的数据库
use databaseName 进入数据库
show tables/collections 查看当前库下的collection

2、创建数据库
MongoDB 的库是隐式创建,你可以 use 一个不存在的库
然后在该库下创建collection,即可创建库

3、创建collection(也就是表)
db.createCollection('collectionName')  
备注:
collection 允许隐式创建,即 db.collectionName.insert(document);

4、删除collection
db.collectionName.drop() ,

5、删除database
db.dropDatabase();

6、查看帮助信息
db.help();

这里写图片描述

二、基本操作增删改查

1、增:insert

介绍: mongodb存储的是文档,. 文档是json格式的对象
语法: db.collectionName.isnert(document);

①增加单篇文档
db.collectionName.insert({name:'jack'});

②增加单个文档,并指定_id
db.collectionName.insert({_id:1,name:'eric'});

③增加多个文档
db.collectionName.insert([
    {_id:2,name:'dora'},
    {name:'tony'},
    {_id:3,name:'lili',gender:'female',hobby:['Internet','music','swimming']}
]);

这里写图片描述

2、删:remove

语法: db.collection.remove(查询表达式, 选项);
选项是指  {justOne:true/false},是否只删一行, 默认为false,指删除所有

备注:
a.查询表达式依然是个json对象
b.查询表达式匹配的行,将被删掉
c.如果不写查询表达式,collections中的所有文档将被删掉

①删除test表中 id属性值为 1 的文档 
db.test.remove({_id:1});

②删除test表中name属性为tony的文档,只删除1行
db.test.remove({name:'tony'},true);

这里写图片描述

3、改:update

语法: db.collection.update(查询表达式,新值,选项);

例:
db.test.update({name:'lili'},{name:'alex'});
是指选中test表中,name值为lili的文档,并把其文档值改为{name:'alex'},
结果: 文档中的其他列也不见了,改后只有_idname列了。
即,新文档直接替换了旧文档,而不是修改

如果是想修改文档的某列,可以用$set关键字
db.collectionName.update(query,{$set:{name:'alex'}})

这里写图片描述

修改时的赋值表达式
$set    修改某列的值 {$set:{列名:新值}}
$unset  删除某个列   {$unset:{列名:1}}
$rename 重命名某个列 {$rename:{旧列名:新列名}}
$inc    增长某个列   {$inc:{列名:增加的值}}
$setOnInsert  当upsert为true时,并且发生了insert操作时,可以补充的字段


Option的作用:
{upsert:true/false,multi:true/false}
multi:是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
Upsert:是指没有匹配的行,则直接插入该行(和mysql中的replace一样)

①把news中所有age=21的文档,都修改
db.test.update({age:21},{$set:{age:22}},{multi:true});

②如果有name='eric'的文档,将被修改;如果没有,将添加此新文档
db.test.update({name:'eric'},{$set:{name:'hehe'}},{upsert:true});

4、查: find, findOne

语法: db.collectionName.find(查询表达式,查询的列);
db.collections.find(表达式,{列1:1,列2:1,...});

①查询所有文档 所有内容
db.collectionName.find()

②查询所有文档的name属性 (_id属性默认总是查出来)
db.collectionName.find({},{name:1})

③查询所有文档的gender属性,且不查询_id属性
db.collectionName.find({},{name:1, _id:0})

④查询所有gender属性值为male的文档中的name属性
db.collectionName.find({gender:'male'},{name:1,_id:0});

猜你喜欢

转载自blog.csdn.net/m0_37886429/article/details/80030668
今日推荐