1: mongo入门命令

 

1.1: show dbs  查看当前的数据库

1.2 use databaseName 选库

1.2 show tables/collections 查看当前库下的collection

 

1.3 如何创建库?

Mongodb的库是隐式创建,你可以use 一个不存在的库

然后在该库下创建collection,即可创建库

 

1.4 db.createCollection(‘collectionName’) 

创建collection

 

1.5 collection允许隐式创建

Db.collectionName.insert(document);

 

1.6 db.collectionName.drop() ,

删除collection

 

1.7 db.dropDatabase();

删除database

基本操作增删改查

增: insert

介绍: mongodb存储的是文档,. 文档是json格式的对象.

 

语法:db.collectionName.isnert(document);

 

1: 增加单篇文档

Db.collectionName.insert({title:’nice day’});

 

2: 增加单个文档,并指定_id

Db.collectionName.insert({_id:8,age:78,name:’lisi’});

 

3. 增加多个文档

db.collectionName.insert(

[

{time:'friday',study:'mongodb'},

{_id:9,gender:'male',name:'QQ'}

]

)

 

 

删:remove

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

选项是指  {justOne:true/false},是否只删一行, 默认为false

 

注意

1: 查询表达式依然是个json对象

2: 查询表达式匹配的行,将被删掉.

3: 如果不写查询表达式,collections中的所有文档将被删掉.

 

例1:db.stu.remove({sn:’001’});

删除stu表中 sn属性值为’001’的文档

 

例2: db.stu.remove({gender:’m’,true});

删除stu表中gender属性为m的文档,只删除1行.

改  update操作

改谁? --- 查询表达式

改成什么样? -- 新值 或 赋值表达式

操作选项 ----- 可选参数

 

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

例:

db.news.update({name:'QQ'},{name:'MSN'});

是指选中news表中,name值为QQ的文档,并把其文档值改为{name:’MSN’},

结果: 文档中的其他列也不见了,改后只有_id和name列了.

即--新文档直接替换了旧文档,而不是修改

 

如果是想修改文档的某列,可以用$set关键字

db.collectionName.update(query,{$set:{name:’QQ’}})

 

修改时的赋值表达式

$set 修改某列的值

$unset 删除某个列

$rename 重命名某个列

$inc 增长某个列

$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.

 

 

Option的作用:

{upsert:true/false,multi:true/false}

Upsert---是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)

 

例:db.stu.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true});

如果有name=’wuyong’的文档,将被修改

如果没有,将添加此新文档

 

例:

db.news.update({_id:99},{x:123,y:234},{upsert:true});

没有_id=99的文档被修改,因此直接插入该文档

 

multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)

例:

db.news.update({age:21},{$set:{age:22}},{multi:true});

则把news中所有age=21的文档,都修改

查: find,findOne

语法:db.collection.find(查询表达式,查询的列);

Db.collections.find(表达式,{列1:1,列2:1});

 

 

例1:db.stu.find()

查询所有文档 所有内容

 

例2:db.stu.find({},{gendre:1})

查询所有文档,的gender属性 (_id属性默认总是查出来)

 

例3:db.stu.find({},{gender:1, _id:0})

查询所有文档的gender属性,且不查询_id属性

 

例3:db.stu.find({gender:’male’},{name:1,_id:0});

查询所有gender属性值为male的文档中的name属性