MongoDB命令

Posted 成九云笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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模型

以上是关于MongoDB命令的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

MongoDB PHP

arx代码片段