安装完成后,在浏览器中输入 http://localhost:27017/
It looks like you are trying to access MongoDB over HTTP on the native driver port.
# 登录客户端,MongoDB安装后无需密码也无任何用户。
> mongo
# 查看数据库
> show dbs;
admin 0.000GB
local 0.000GB
# 查看当前数据库
> db
# 选择数据库,如果数据库不存在,将创建一个新的数据库, 否则将返回现有的数据库。
> use admin;
switched to db admin
# 删除已经use的数据库
> db.dropDatabase()
# 创建集合,默认并不需要创建集合,当插入文档时会自动创建集合。
> db.createCollection(name,options)
- name String 集合名称
- options Document 指定有关内存大小和索引选项(可选)
- capped Boolean 是否启用上限集合,上限集合是一个固定大小的集合,当它大多其最大尺寸会自动覆盖最老的条目。
- size number 上限集合字节的最大尺寸
- max number 指定上限集合与允许的最大文件数
- autoIndexID Boolean 是否自动创建索引_id字段,默认false。
# 删除集合
> db.COLLECTION_NAME.drop()
# 查看集合
> show collections;
# 集合插入文档,若未指定_id参数,则默认文档分配一个唯一的ObjectId。
> db.COLLECTION_NAME.insert(document)
_id 是一个12byte十六进制数,12个字节的结构划分为
_id: ObjectId(4bytes timestamp, 3bytes machine id, 2bytes process, 3bytes incrementer)
# 从集合中查询所有条目,结果将以非结构化方式显示。
> db.COLLECTION_NAME.find()
# 从集合中查询所有条目,结果以结构化方式显示。
> db.COLLECTION_NAME.find().pretty()
# 添加管理员
> db.createUser({user:'admin', pwd:'123456', roles:[{role:'userAdminAnyDatabase', db:'admin'}] })
# 查询admin集合中所有记录
> db.admin.find()
# 显示系统用户
> show users;
# 查看系统已存在的用户
> db.system.users.find();
# 删除系统已存在的用户
> db.system.users.remove({user:'root'});
# 关闭数据库,仅root角色可操作。
> db.shutdownServer();
# 登录启用授权认证
> mongod --auth --dbpath=/home/mongo/data --logpath=/home/log/mongo/mongodb.log
# 在admin下面添加的帐号到admin下面验证
> use admin;
# 授权认证
> db.auth("root", "root")
权限验证
MongoDB3.0.3加入SCRAM-SHA-1校验方式,需第三方工具配合进行校验。
若需关闭认证,需球盖system.version文档authSchema版本为3,默认初始安装为5.
> use admin
> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.4" }
{ "_id" : "authSchema", "currentVersion" : 5 }
# 方式1
> var schema = db.system.version.findOne({"_id":"authSchema"})
> schema.currentVersion = 3
> db.system.version.save(schema)
# 删除用户
> db.dropUser("admin")
# 修改版本
> db.system.version.update({'_id':'authSchema'}, {$set, {'currentVersion':3}})
# 重建账户
> db.createUser({user:'admin', pwd:'123456', roles:[]})
Authentication failed
使用root权限在指定业务库中,使用命令行创建用户,项目或第三方工具才能使用账户或密码连接MongoDB指定的数据库。
# 查看数据库级别命令的帮助
> 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.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.getName()
test
> db
test
# 获取当前数据库版本
> db.version()
3.4.10
# 获取当前数据库信息
> db.stats()
{
"db" : "test",
"collections" : 1,
"views" : 0,
"objects" : 2,
"avgObjSize" : 57.5,
"dataSize" : 115.0,
"storageSize" : 32768.0,
"numExtents" : 0,
"indexes" : 1,
"indexSize" : 32768.0,
"ok" : 1.0
}