MongoDB数据库常用操作命令


常用操作

查看帮助

db.help()

当前数据库的版本

db.version()

当前使用的数据库

db.getName()

当前数据库的状态

db.stats()

当前数据库的地址

db.getMongo()

查询错误信息

db.getPrevError()

清除错误记录

db.resetError()

数据库服务器状态

db.serverStatus()

常规操作


数据库database操作

创建数据库

use Person

切换数据库

use Person

删除数据库

db.dropDatabase()

查看所有数据库

show dbs

克隆指定地址的数据库

db.cloneDatabase(“127.0.0.1”)

复制指定数据库的数据到指定数据库

db.copyDatabase(“被复制的数据库”,”粘贴后数据库”,”粘贴后地址”)

修复数据库

db.repairDatabase()

注意:
* 当创作一个集合,即table时,会自动创建当前数据库
* 删除数据库时,必须先切换到对应的数据库,再执行删除。

数据库操作


  • 集合collection操作
    创建collection,即table
db.createCollection(表名,{size:50,capped:5,max:100})

删除table

db.col.drop()

得到所有table

db.getCollectionNames()

显示当前talbe状态

db.printCollectionStats()

显示所有collection

show collections

获取当前集合所在数据库

db.person.getDB()

复制集合

// col被复制到person
db.col.copyTo('person')

显示用户

show users
// 或 
db.getUsers()

添加用户

db.addUser(“用户名称”) 
// 或 
db.addUser(“用户名称”,”用户密码”,true为只读)

删除用户

db.removeUser(“用户名”)

数据库认证,安全模式,即身份验证

// 登录
db.auth(“用户名称”,”密码”)
// 退出
db.logout()

登录数据库

mongo -u 用户名 -p 密码 —-authenticationDatabase 数据库

索引操作

创建索引

// 1为升序,-1为降序
db.col.ensureIndex({“key”:1,”key”:-1}) 

删除指定索引

db.col.dropIndex(“key”)

删除所有索引

db.col.dropIndexes()

获取当前所有索引

db.col.getIndexes()

获取当前所有index信息

db.col.reIndex()

查看索引大小

db.col.totalIndexSize()

数据操作

文档的数据结构和JSON基本一样,所有存储在集合中的数据都是BSON格式。BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
操作格式:db.数据库名称.操作类型({‘key’:’value’})

插入数据

db.col.insert({key:’value’,key:’value’})
// 或 
db.col.save({key:’value’,key:’value’})
// 或 先将Json定义成变量后再操作
object=({key:’value’,key:’value’}) 
db.col.save(object)

插入数据

查看数据

db.col.find()

// 或 查询第一条数据 
db.col.findOne()

// 或 查询前n条数据 
db.col.find().limit(n)

// 或 查询n条以后的数据 
db.col.find().skip(n)

// 或 查询某个结果的记录条数 
db.col.find(‘key’).count()

// 或 过滤重复数据 
db.col.distinct(‘key’)

// 或 查询指定数据 
db.col.find({‘key’:’value’})

// 或 查询大于某个值n的记录 
db.col.find({‘key’:{$gt:n}})

// 或 查询小于某个值n的记录 
db.col.find({‘key’:{$lt:n}})

// 或 查询大于等于某个值n的记录 
db.col.find({‘key’:{$gte:n}})

// 或 查询小于等于某个值n的记录 
db.col.find({‘key’:{$lte:n}})

// 或 查询大于等于n1,且小于等于某个值n2的记录 
db.col.find({‘key’:{$gte:n1,$lte:n2}})

// 或 查询等于n1,或等于n2的记录 
db.col.find({$or:[{‘key’:n1},{’key’:n2}]})

// 或 查询包含某个值value的记录 
db.col.find({‘key’:/value/})

// 或 查询以某个值value开头的记录 
db.col.find({‘key’:/^value/})

// 或 查询大于某个值n的记录 
db.col.find({‘key’:{$gt:n}})

// 或 查询某个条件下的指定列的记录 
db.col.find({‘key’:’value’},{‘key’:1,’key’:1,…}})

// 或 查询按指定条件排序的记录。注意:1为升序,-1为降序
db.col.find().sort({‘key’:1})

注意:
1 查询条件等式小于 lt lte,大于 gt gte,不等于 ne2 in,不是 not or
3 匹配自身,或不存在的null,存在的$exists

删除数据

db.col.remove({‘key’:’value’})

修改数据

db.col.update({‘key’:’value’},{$set:{‘key’:’value’}},false,true)
// 或 某个条件下的值增加n 
db.col.update({‘key’:’value’},{$inc:{‘key’:n}})

增删改查

多种操作合并,如查询修改删除

db.col.findAndModify({query:{‘key’:’value’},sort:{‘key’:1},update:{$set:{‘key’:’value’}},remove:false})

// 或 
db.runCommand({findandmodify:col,query:{‘key’:’value’},sort:{‘key’:-1},update:{$set:{‘key’:’value’}},remove:false})

多条件操作


其他操作

对象转换成json

tojson(new Object({‘key’:’value’}))

游标查询

转换成数组

var array = db.col.find()

显示记录

while (array.hasNext()){printjson(array.next());}

迭代循环

db.col.find().forEach(printjson)

数组处理

转换成数组

var array = db.col.find()

下标显示记录

array[1]

// 或 
var array = db.col.find().toArray()
printjson(array[1])

数据库的锁状态

锁状态

db.currentOp()

加锁

db.runCommand({fsync:1,lock:1})

解锁

db.$cmd.sys.unlock.findOne()

注意
1 一般执行数据库备份时进行加锁
2 fsyncLock为1,表示不允许执行写操作


数据库的备份、恢复、数据迁移(导入、导出)
创建备份目录

mkdir backupDocument

进入bin目录

cd bin

备份
备份全部数据库

./mongodump

备份指定数据库

./mongodump -d 指定数据库

备份指定数据库中的指定集合

./mongodump -d 指定数据库 -c 指定集合

注意:备份时,需要进入备份数据库的目录

恢复
恢复全部数据库

// drop表示恢复前删除原来的数据库数据,避免造成恢复后数据重复
./mongorestore —-drop

恢复指定数据库

./mongorestore -d 指定数据库 —drop

恢复指定数据库的指定集合

./mongorestore -d 指定数据库 -c 指定集合 —drop

导入

// 将数据导入到指定数据库的指定集合
./mongoimport -d col -c col --file /Users/zhangshaoyu/Desktop/export/personInfo.json --type json

注意:
1 文件类型type:csv、tsv、json,默认格式json
2 mongoimport —help查看帮助

导入数据

导出

// 将指定数据库中的指定集合中的数据导出到指定格式文件
./mongoexport -d col -c col -o /Users/zhangshaoyu/Desktop/export/personInfo.json --type json -f 'name,age,id'

注意:
1 -q表示指定查询条件
2 -f表示文件中的列名
3 mongoexport —help可查看帮助

导出数据


远程管理

远程连接

mongo -u 用户名 -p 密码 地址/数据库

多表联合处理

示例:模拟用户发帖,关联用户集合userTable、帖子集合postTable的关系。
1 获取用户信息

people = db.person.findOne()

2 发表帧子

db.postCollection.save({'title':'test title 2','name':people.name})

3 获取帖子信息

db.postCollection.find({'name':people.name})

多表查询


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值