Mongo
Mongo 数据库的层次关系
Mongo 命令
help(显示基本操作命令 )
使用 help
在 ,mongo shell 显示基本操作命令
> help
db.help() # 显示数据库操作命令
db.mycoll.help() # 显示集合(collection)操作命令
sh.help() # 显示数据库分片操作命令
rs.help() # 显示副本集操作命令
help admin # 显示管理员操作命令
help connect # 显示连接数据库命令
help keys # 显示快捷键
help misc # 显示其它操作命令
help mr # 显示 mapreduce 操作命令
show dbs # 显示所有数据库列表
show collections # 显示当前数据库所有集合列表
show users # 显示当前数据库用户
show profile # 显示最近至少 1ms(>=1ms) 时间运行的前5条记录
show logs # 显示所有日志名称列表(默认为 global)
show log [name] # 显示所有指定日志列表(默认为 global)
use <db_name> # 切换/创建数据库(若不存在则自动创建)
db.foo.find() # 查询 foo 集合,无参数则查询所有,并返回一个游标对象
db.foo.find( { a : 1 } ) # 查询 foo 集合中 a == 1 的对象列表
it # 迭代查询下一页数据
DBQuery.shellBatchSize = x # 设置要在 shell 上显示的默认记录条数
exit # 退出 mongo shell
数据库操作
> db.help()
DB methods:
db.adminCommand(nameOrDocument) # 转至 'admin' 数据库, 并运行命令[ 刚刚调用的命令 db.runCommand(...) ]
db.auth(username, password) # 数据库用户认证
db.cloneDatabase(fromhost) # 从指定主机上克隆数据库到当前数据库
db.commandHelp(name) # 返回数据库命令的帮助信息
db.copyDatabase(fromdb, todb, fromhost) # 从指定的主机上复制指定数据库数据到某个数据库
db.createCollection(name, { size : ..., capped : ..., max : ... } ) # 创建一个新的集合
db.createView(name, viewOn, [ { $operator: {...}}, ... ], { viewOptions } )
db.createUser(userDocument) # 创建用户
db.currentOp() # 显示当前正在进行的操作
db.dropDatabase() # 删除当前数据库
db.eval() - deprecated
db.fsyncLock() # 刷新写入磁盘并锁定该数据库,以防止写入操作,并协助备份操作
db.fsyncUnlock() # 允许继续进行写入锁住的数据库(解锁)
db.getCollection(cname) # 相当于 db['cname'] 或 db.cname,返回一个集合对象。需要传递一个在数据库中存在的一个有效的集合名称
db.getCollectionInfos([filter]) # 返回当前数据库中的所有集合信息
db.getCollectionNames() # 列出当前数据库中的所有集合
db.getLastError() # 检查并返回最后一个错误操作状态
db.getLastErrorObj() # 返回全部数据库对象状态
db.getLogComponents() # 返回日志消息详细级别
db.getMongo() # 返回MongoDB当前连接的连接对象
db.getMongo().setSlaveOk() allow queries on a replication slave server
db.getName() # 返回当前数据库的名称(也可以直接使用db;命令)
db.getPrevError() # 返回包含自上次错误复位所有的错误状态文件
db.getProfilingLevel()
db.getProfilingStatus()
db.getReplicationInfo()
db.getSiblingDB(name)
db.getWriteConcern()
db.hostInfo() # 返回当前数据库主机系统的相关信息
db.isMaster() check replica primary status
db.killOp(opid) # 终止指定的操作
db.listCommands() # 显示公共数据库的命令列表
db.loadServerScripts() loads all the scripts in db.system.js
db.logout() # 注销登录
db.printCollectionStats() # 显示集合状态
db.printReplicationInfo()
db.printShardingStatus()
db.printSlaveReplicationInfo()
db.dropUser(username) # 删除用户
db.repairDatabase() # 修复当前数据库
db.resetError() # 重置 db.getPrevError()和 getPrevError 返回的错误信息
db.runCommand(cmdObj) # 运行一个数据库命令
db.serverStatus() # 返回当前数据库状态的概要
db.setLogLevel(level,<component>) # 设置一个单独的日志信息级别
db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all # 修改当前数据库的分析级别
db.setWriteConcern( <write concern doc> )
db.unsetWriteConcern( <write concern doc> )
db.setVerboseShell(flag) # 显示 shell 额外输出信息
db.shutdownServer() # 关闭当前数据库运行实例或安全停止有关操作进程
db.stats() # 返回在当前数据库的状态报告
db.version() # 返回当前数据库的版本信息
>
集合操作
>db.collection.help()
DBCollection help
db.collection.find().help() # 显示数据库游标帮助
db.collection.bulkWrite( operations, <optional params> ) # 批量写入
db.collection.count( query = {}, <optional params> ) # 返回集合总数或匹配查询的结果集总数
db.collection.copyTo(newColl)
db.collection.convertToCapped(maxBytes) - calls {convertToCapped:'collection', size:maxBytes}
db.collection.createIndex(keypattern[,options]) # 创建一个集合索引
db.collection.createIndexes([keypatterns], <options>)
db.collection.dataSize() # 返回集合的大小
db.collection.deleteOne( filter, <optional params> ) # 删除集合中的一个文档
db.collection.deleteMany( filter, <optional params> ) # 删除集合中的多个文档
db.collection.distinct( key, query, <optional params> ) # 返回具有指定字段不同值的文档(去除指定字段的重复数据)
db.collection.drop() # 删除集合
db.collection.dropIndex(index) # 删除指定索引
db.collection.dropIndexes() # 删除所有索引
db.collection.ensureIndex(keypattern[,options]) # 已过时。现使用 db.collection.createIndex()
db.collection.explain().help() # 返回各种方法的查询执行信息
db.collection.reIndex()
db.collection.find([query],[fields]) # 查询集合,无参数则查询所有,并返回一个游标对象
db.collection.find(...).count()
db.collection.find(...).limit(n)
db.collection.find(...).skip(n)
db.collection.find(...).sort(...)
db.collection.findOne([query], [fields], [options], [readConcern]) # 查询单条数据
db.collection.findOneAndDelete( filter, <optional params> ) # 查询单条数据并删除
db.collection.findOneAndReplace( filter, replacement, <optional params> ) # 查询单条数据并替换
db.collection.findOneAndUpdate( filter, update, <optional params> ) # 查询单条数据并更新
db.collection.getDB()
db.collection.getPlanCache()
db.collection.getIndexes() # 返回当前集合的所有索引数组
db.collection.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } ) # 提供简单的数据聚合功能
db.collection.insert(obj) # 在当前集合插入一条或多条数据(或叫文档)
db.collection.insertOne( obj, <optional params> ) # 在当前集合插入一条数据
db.collection.insertMany( [objects], <optional params> ) # 在当前集合插入多条数据
db.collection.mapReduce( mapFunction , reduceFunction , <optional params> )
db.collection.aggregate( [pipeline], <optional params> )
db.collection.remove(query) # 从当前集合删除数据
db.collection.replaceOne( filter, replacement, <optional params> ) # 替换集合中的一个文档(一条数据)
db.collection.renameCollection( newName , <dropTarget> ) # 重命名集合名称
db.collection.runCommand( name , <options> )
db.collection.save(obj) # 在当前集合插入一条数据,同insert()方法的区别:当要插入的数据已存在时,save会执行更新操作,而insert方法会忽略当前操作
db.collection.stats({scale: N, indexDetails: true/false, indexDetailsKey: <index key>, indexDetailsName: <index name>}) # 返回当前集合的状态
db.collection.storageSize() # 返回当前集合已使用的空间大小
db.collection.totalIndexSize() # 返回所有索引的大小
db.collection.totalSize()
db.collection.update( query, object[, upsert_bool, multi_bool] )# 修改集合中的数据
db.collection.updateOne( filter, update, <optional params> ) # 修改集合中的一条数据
db.collection.updateMany( filter, update, <optional params> ) # 修改集合中的多条数据
db.collection.validate( <full> )
db.collection.getShardVersion()
db.collection.getShardDistribution()
db.collection.getSplitKeysForChunks( <maxChunkSize> )
db.collection.getWriteConcern()
db.collection.setWriteConcern( <write concern doc> )
db.collection.unsetWriteConcern( <write concern doc> )
db.collection.latencyStats()
>