mongodb的db方法

 

 

 

 

 

 

方法名描述
db.cloneDatabase() 从指定主机上克隆数据库
db.currentOp() 显示当前正在进行的操作
db.commandHelp() 返回数据库命令的帮助信息
db.createCollection() 创建一个聚集集合(table)
db.cloneCollection() 在MongoDB实例之间复制集合数据
db.copyDatabase() 从指定的机器上复制指定数据库数据到某个数据库
db.dropDatabase(); 删除当前使用数据库
db.fsyncLock() 刷新写入磁盘并锁定该数据库,以防止写入操作,并协助备份操作
db.fsyncUnlock() 允许继续进行写入锁住的数据库(解锁)
db.getLogComponents() 返回日志消息详细级别
db.getLastErrorObj() 查看完整的错误结果
db.getMongo() 查看当前db的链接机器地址
db.getCollection() 得到指定名称的聚集集合(table)
db.getName() 查看当前使用的数据库
db.getPrevError() 返回包含自上次错误复位所有的错误状态文件
db.getCollectionNames() 得到当前db的所有聚集集合
db.getCollectionInfos() 返回当前数据库中的所有集合信息
db.getLastError() 返回上一次错误,如果没有错误则为空
db.hostInfo() 返回当前数据库主机系统的相关信息
db.killOp() 终止指定的操作
db.listCommands() 显示公共数据库的命令列表
db.logout() 注销登录
db.printCollectionStats() 显示当前db所有聚集索引的状态
db.resetError() 重置db.getPrevError()和getPrevError返回的错误信息
db.repairDatabase() 修复当前数据库
db.repairDatabase() 修复当前数据库
db.runCommand() 运行一个数据库命令
db.serverStatus() 返回当前数据库状态的概要
db.setProfilingLevel() 修改当前数据库的分析级别
db.stats() 显示当前db状态
db.shutdownServer() 关闭当前数据库运行实例或安全停止有关操作进程
db.setLogLevel() 设置一个单独的日志信息级别
db.version() 查看当前db版本

 

 

 

获取当前db的信息:db.stats():

返回整个数据库的基本情况。可以参入一个number类型参数,它会将数据按指定的倍数去显示数据,例如 db.stats(1024) 则按kb显示数据,默认按byte显示。


db.stats(); 
{
  "db": "test",
  "collections": 3,
  "objects": 13,
  "avgObjSize": 36,
  "dataSize": 468,
  "storageSize": 13312,
  "numExtents": 3,
  "indexes": 1,
  "indexSize": 8192,
  "fileSize": 201326592,
  "nsSizeMB" : 16,
  "dataFileVersion" : {
    "major" : 4,
    "minor" : 6
  },
  "ok": 1
}


db : “test” ,表示当前是针对”test”这个数据库的描述。 collections : 3,表示当前数据库有多少个collections.可以通过运行show collections查看当前数据库具体有哪些collection. objects : 13,表示当前数据库所有collection总共有多少行数据。显示的数据是一个估计值,并不是非常精确。 avgObjSize : 36,表示每行数据是大小,也是估计值,单位是bytes dataSize : 468,表示当前数据库所有数据的总大小,不是指占有磁盘大小。单位是bytes storageSize : 13312,表示当前数据库占有磁盘大小,单位是bytes,因为mongodb有预分配空间机制,为了防止当有大量数据插入时对磁盘的压力,因此会事先多分配磁盘空间。 numExtents : 3,连续分配的数据块。 indexes : 1,索引个数。 indexSize : 8192,索引占用空间大小。 fileSize : 201326592,物理存储文件的大小。 nsSizeMB : 16,命名空间文件大小。 dataFileVersion” : { “major” : 数据文件主版本号 “minor” : 次版本号 }。

 

 尽量不要再线上使用:db.collection_name.validate(true)

         从 MongoDB 3.6 开始,对于 WiredTiger 存储引擎,只有full验证过程将强制检查点并将所有内存中数据刷新到磁盘,然后再验证磁盘上的数据。

  1. db.collection.validate()方法可能会占用大量资源,并且可能会影响 MongoDB 实例的性能,且执行后强制退出都没用,杀伤力较大

  2. db.collection.validate()方法获得对集合的排他锁这将阻止对集合的所有读取和写入,直到操作完成。在辅助服务器上运行时,该操作可以阻止该辅助服务器上的所有其他操作,直到完成为止。

  3. db.collection.validate()方法可能很慢,尤其是在较大的数据集上

 

  • 要对集合myCollection进行完全验证
db.myCollection.validate( { full: true } )

db.myCollection.validate(true)

 

 

 

 

###################################

posted @ 2020-10-30 17:16  igoodful  阅读(280)  评论(0编辑  收藏  举报