概念:C++编写,基于分布式的,属于NoSQL的一种,最像关系型数据库的NoSQL,MongoDB 将数据存储为一个文档,数据结构由键值(key-value)对组成,MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组及文档数组。
语法格式: Bson: Binary JSON
连接mongodb命令
mongo
如果修改了端口,连接时需要指定端口
mongo --port 27017 (27017是默认端口)
远程连接时,需要指定服务端ip,端口
mongo --host 192.168.88.103 --port 27017
用户管理
选择库
use admin (switched to db admin)
创建用户
db.createUser( { user: “user1”, customData: {description: “superuser”}, pwd: “user1”, roles: [ { role: “root”, db: “admin” } ] } )
#user:指定用户名,pwd:指定密码,role:指定角色,db:指定库名(表示用户user1有admin库的root角色权限),customData为说明字段,可以省略
列出所有用户
db.system.users.find()
删除用户
db.dropUser(‘user1’)
开启用户名密码认证后登录需要指定用户名,密码,数据库名
mongo -u user1 -p user1 --authenticationDatabase admin
mongodb版本
db.version()
查看所有库
show dbs
进入指定库,如果库不存在,会自动创建
use db1
db.dropDatabase()删除当前所在的库,删除之前必须use切换到要删除的库中
db.stats()
db.serverStatus() 查看服务器状态
创建集合
db.createCollection(name,options)
name 集合名称 options 可选
db.createCollection(“Test”, { cappad: true, size: 6142800, max: 10000})
集合名首字母大写,否则无法向集合中添加或更改数据
capped:true/false(可选) 如果为true,则启用封顶集合,封顶集合是固定大小的集合,当它达到指定最大值,会覆盖最早的条目,如果指定为true,则也需要指定尺寸参数
size: (可选)指定封顶集合的最大字节数,如果开启了封顶集合,需要指定这个参数,单位byte
max: (可选) 指定封顶集合中允许的文件最大数量
show collections / show tables
查看库中集合,两种方式均可
插入数据
db.CollectionName.insert({id:1 ,name:“123” ,password:“12343”})
集合如果不存在,会自动创建
修改
db.CollectionName.update({id:1}, {"$set": {“age”:18}})
更改集合中id为1的文档,将键age 的value设为10,如果改键不存在,则自动创建
查询
db.CollectionName.find()
db.CollectionName.find({“age”:18})
删除
db.CollectionName.remove({id:2})
删除集合
db.CollectionName.drop()
查看所有集合的状态
db.printCollectionStats()