MongoDB命令

一、入门命令

(1)查看当前的数据库

show dbs  

(2)切换数据库

use databaseName 

(3)查看当前数据库下的collection

show tables/collections 

二、创建库

Mongodb的库是隐式创建,可以use一个不存在的库,然后在该库下创建collection,即可创建库
(1)创建collection

db.createCollection('collectionName')

(2)collection允许隐式创建

db.collectionName.insert(document)

(3)删除collection

db.collectionName.drop()

(4)删除database

db.dropDatabase()

三、基本操作增删改查

(1)增:insert
mongodb存储的是文档, 文档是json格式的对象

db.collectionName.insert(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'}
    ]
)

(2)删:remove

db.collection.remove(查询表达式,{justOne:true/false})

justOne:是否只删一行,默认为false
注意:
查询表达式依然是个json对象
查询表达式匹配的行,将被删掉
如果不写查询表达式,collections中的所有文档将被删掉
1.删除stu表中 sn属性值为'001'的文档

db.stu.remove({sn:'001'})

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

db.stu.remove({gender:'m',true})

(3)改:update

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

1.把news表中name值为QQ的文档改为{name:'MSN'}

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

结果: 文档中的其他列也不见了,改后只有_id和name列了,即新文档直接替换了旧文档,而不是修改
2.如果是想修改文档的某列,可以用$set关键字

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

(a)修改时的赋值表达式:
1.$set:修改某列的值
2.$unset:删除某个列
3.$rename:重命名某个列
4.$inc:增长某个列
5.$setOnInsert:当upsert为true时,并且发生了insert操作时,可以补充的字段
(b)Option的作用:

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

upsert是指没有匹配的行,则直接插入该行(和MySQL中的replace一样)
1.如果有name='wuyong'的文档,将被修改。如果没有,将添加此新文档

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

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

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

multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
1.把news中所有age=21的文档,都修改

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

(4)查: find, findOne

db.collection.find(查询表达式,查询的列)
db.collections.find(表达式,{列1:1,列2:1})

1.查询所有文档,所有内容

db.stu.find()

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

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

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

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

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

db.stu.find({gender:'male'},{name:1,_id:0})

查看更多:
开发一个微信小程序实例教程
HTTP协议整理
PHP安全之Web攻击
秒杀系统设计优化
MySQL优化
Linux下常见的IO模型

posted @ 2017-01-23 16:07  成九  阅读(1086)  评论(0编辑  收藏  举报