以一下项目问题处理过程分析: 某项目的mongodb库名
缘于项目,版本如下
[root@ mongodb]# /usr/local/mongodb/bin/mongo MongoDB shell version v3.4.23 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.23 > db.help(); DB methods: db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ] db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb, todb, fromhost) db.createCollection(name, { size : ..., capped : ..., max : ... } ) db.createView(name, viewOn, [ { $operator: {...}}, ... ], { viewOptions } ) db.createUser(userDocument) db.currentOp() displays currently executing operations in the db db.dropDatabase() db.eval() - deprecated db.fsyncLock() flush data to disk and lock server for backups db.fsyncUnlock() unlocks server following a db.fsyncLock() db.getCollection(cname) same as db['cname'] or db.cname db.getCollectionInfos([filter]) - returns a list that contains the names and options of the db's collections db.getCollectionNames() db.getLastError() - just returns the err msg string db.getLastErrorObj() - return full status object db.getLogComponents() db.getMongo() get the server connection object db.getMongo().setSlaveOk() allow queries on a replication slave server db.getName() db.getPrevError() db.getProfilingLevel() - deprecated db.getProfilingStatus() - returns if profiling is on and slow threshold db.getReplicationInfo() db.getSiblingDB(name) get the db at the same server as this one db.getWriteConcern() - returns the write concern used for any operations on this db, inherited from server object if set db.hostInfo() get details about the server's host db.isMaster() check replica primary status db.killOp(opid) kills the current operation in the db db.listCommands() lists all the db commands 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.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into { cmdObj : 1 } db.serverStatus() db.setLogLevel(level,<component>) db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all db.setWriteConcern( <write concern doc> ) - sets the write concern for writes to the db db.unsetWriteConcern( <write concern doc> ) - unsets the write concern for writes to the db db.setVerboseShell(flag) display extra information in shell output db.shutdownServer() db.stats() db.version() current version of the server >
> use admin switched to db admin > db.auth("useradmin","userpasswd") 1 > show dbs admin 0.000GB local 0.000GB dbpro 0.000GB {"新库,只有部分测试的数据。":""} dbpro?authSource=admin&authMechanism=SCRAM-SHA-1 0.000GB {"#数据主要存储在这里,估计是客户端程序连接时将参数传入(作为库名)创建相应的库。":""} > db.MMInfoExtension.findOne() null > use dbpro switched to db dbpro > show tables MMInfoExtension > > db.MMInfoExtension.findOne() { "_id" : "282ec58a-66cd-4d48-a0ed-009f4fd180e2", "dd" : "22", "gcmc" : "测试**", "jsgq" : "2019-11-11", "bzdw" : "日照香炉服务*", "bh" : "37110020*********01", "operateusername" : "日照香炉服务", "sgfzr" : "**表单", "rowguid" : "282ec58a-66cd-4d48-a0ed-009f4fd180e2", "operatedate" : ISODate("2020-02-22T14:23:16.229Z"), "sgdw" : "侧啥", "certinfoguid" : "2e698446-ca14-4c67-9b6f-bfd5fb052433", "kcfzr" : "侧耳", "bz" : "", "kcdw" : "侧耳", "jsgm" : "12312.0m²", "sjdw" : "******建筑设计有限公司", "yy" : "2020", "mm" : "02", "ksgq" : "2018-11-11", "sjfzr" : "杨**", "jldw" : "121321312321231", "zjlgcs" : "大范围", "jsdw" : "**测试企业01", "jsdz" : "东至测试花园,西至测试花园,南至测试花园,北至测试花园", "htjg" : "312321", "jsfzr" : "发证人" > use dbpro?authSource=admin&authMechanism=SCRAM-SHA-1 switched to db dbpro?authSource=admin&authMechanism=SCRAM-SHA-1 > show tables MMInfoExtension > > db.MMInfoExtension.findOne() { "_id" : "38c5d7b0-e85f-4f8c-9e81-bde6f08a8b56", "dd" : "1", "gcmc" : "1", "jsgq" : "1", "bzdw" : "1", "bh" : "11", "operateusername" : "移动*****04", "sgfzr" : "1", "rowguid" : "38c5d7b0-e85f-4f8c-9e81-bde6f08a8b56", "operatedate" : ISODate("2019-12-19T12:52:11.210Z"), "sgdw" : "1", "certinfoguid" : "27132d8a-9bbd-466b-9d49-d6dd8c45f58f", "kcfzr" : "1", "bz" : "1", "kcdw" : "1", "jsgm" : "1", "sjdw" : "1", "yy" : "1", "mm" : "1", "ksgq" : "1", "sjfzr" : "1", "jldw" : "1", "zjlgcs" : "1", "jsdw" : "1", "jsdz" : "1", "zzlsh" : "1", "htjg" : "1", "jsfzr" : "1" } > use admin switched to db admin > db.runCommand({renameCollection:"dbpro?authSource=admin&authMechanism=SCRAM-SHA-1.MMInfoExtension", to:"test.MMInfoExtension"}) {"ok" : 1 } {"这里利用了长名称可以移动其内部集合的功能,先将集合移出,使其在新库test中可以正常导出或备份" : "然后还可以反向还原回去。json备注(只是为了高亮)" } > show dbs admin 0.000GB local 0.000GB dbpro 0.000GB dbpro?authSource=admin&authMechanism=SCRAM-SHA-1 0.000GB test 0.000GB > show collections system.users system.version > use test switched to db test > show collections MMInfoExtension > db.MMInfoExtension.findOne() { "_id" : "38c5d7b0-e85f-4f8c-9e81-bde6f08a8b56", "dd" : "1", "gcmc" : "1", "jsgq" : "1", "bzdw" : "1", "bh" : "11", "operateusername" : "移动*****04", "sgfzr" : "1", "rowguid" : "38c5d7b0-e85f-4f8c-9e81-bde6f08a8b56", "operatedate" : ISODate("2019-12-19T12:52:11.210Z"), "sgdw" : "1", "certinfoguid" : "27132d8a-9bbd-466b-9d49-d6dd8c45f58f", "kcfzr" : "1", "bz" : "1", "kcdw" : "1", "jsgm" : "1", "sjdw" : "1", "yy" : "1", "mm" : "1", "ksgq" : "1", "sjfzr" : "1", "jldw" : "1", "zjlgcs" : "1", "jsdw" : "1", "jsdz" : "1", "zzlsh" : "1", "htjg" : "1", "jsfzr" : "1" } > db.MMInfoExtension.find({"mm":"9"}).count() 0 > db.MMInfoExtension.find({"mm":"1"}).count() 113 >
[root@mhanode102 mongodb]# du -sh ../mongodb/data/* 156K ../mongodb/data/admin 166M ../mongodb/data/diagnostic.data 300M ../mongodb/data/journal 72K ../mongodb/data/local 36K ../mongodb/data/_mdb_catalog.wt 4.0K ../mongodb/data/mongod.lock 104K ../mongodb/data/dbpro 116K ../mongodb/data/dbpro.63authSource.61admin.38authMechanism.61SCRAM.45SHA.451 36K ../mongodb/data/sizeStorer.wt 4.0K ../mongodb/data/storage.bson 276K ../mongodb/data/test 4.0K ../mongodb/data/WiredTiger 4.0K ../mongodb/data/WiredTigerLAS.wt 4.0K ../mongodb/data/WiredTiger.lock 4.0K ../mongodb/data/WiredTiger.turtle 92K ../mongodb/data/WiredTiger.wt
存储引擎(Storage Engine)
是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引擎(Storage Engine),MongoDB支持的存储引擎有:WiredTiger,MMAPv1和In-Memory。https://www.cnblogs.com/ljhdo/archive/2016/10/30/4947357.html
从MongoDB 3.2 版本开始,WiredTiger成为MongDB默认的Storage Engine,用于将数据持久化存储到硬盘文件中,WiredTiger提供文档级别(Document-Level)的并发控制,检查点(CheckPoint),数据压缩和本地数据加密( Native Encryption)等功能。
MongoDB不仅能将数据持久化存储到硬盘文件中,而且还能将数据只保存到内存中;In-Memory存储引擎用于将数据只存储在内存中,只将少量的元数据和诊断日志(Diagnostic)存储到硬盘文件中,由于不需要Disk的IO操作,就能获取索取的数据,In-Memory存储引擎大幅度降低了数据查询的延迟(Latency)。
> db.stats() { "db" : "test", "collections" : 1, "views" : 0, "objects" : 395, "avgObjSize" : 637.5012658227848, "dataSize" : 251813, "storageSize" : 106496, "numExtents" : 0, "indexes" : 1, "indexSize" : 32768, "ok" : 1 } >