安装mongodb
sudo apt-get install mongodb
... ...
设置客户端连接
打开文件/etc/mongodb.conf 注意权限
修改 bind_ip=127.0.0.1 为 bind_ip=0.0.0.0
设置连接用户名和密码及常用命令
进入mongodb交互模式
>mongo
创建连接用户
>use admin
>db.addUser('username','password')
用户验证
>db.auth('username','password')
查看数据集
>db.collections
... ...
查看用户列表
>db.system.users.find()
查看所有用户
>show user
删除用户
>db.removeUser('username')
查看所有数据库
>show dbs
查看数据集状态
>db.printCollectionStats()
查看数据库介绍
>show profile
删除数据集
>db.demo_col.drop()
删除当前数据库
>db.dropDatabase()
服务启动与关闭
sudo service mongodb start
sudo service mongodb stop
增删改查 [数据库名称demoDB]
添加数据
>db.demoDB.save({'name':'bob','email':['a@126.com','b@163.com'],'sex':1})
修改数据
格式:db.collection.update( criteria, objNew, upsert, multi )
criteria : update的查询条件,类似sql update查询内where后面的
objNew : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
>db.demoDB.update({'name':'bob'},{'$set':{'sex':0},upsert=true,multi=true})
删除数据
>db.demoDB.remove({'name':'bob'})
删除所有记录
>db.demoDB.remove()
查询所有数据
>db.demoDB.find()
查询最上面一条数据
>db.demoDB.findOne()
根据条件查询指定条数的数据
>db.demoDB.find({'sex':0}).limit(2)
跳过指定条数
>db.demoDB.skip(10)
排序sort
>db.demoDB.find({'sex':0}).sort({'name':-1})
计数操作
>db.demoDB.find({'sex':0}).count()
>db.demoDB.count()
查询指定列,去除重复
>db.demoDB.distinct('sex')
子对象查找
>db.demoDB.distinct({'addr.province':'beijing'})
条件操作符查找
gt:大于
lt:小于
gte:大于等于
lte:小于等于
ne:不等于
in:in包含 $in:[1,2,3,4]
type:数值类型 [double 1 , string 2 ,object 3,array 4, binary data 5,object id 7 ,boolean 8,date 9,null 10,reg 11,js code 13 ,32-bit integer 16 ,timestamp 17,64-bit integer 18,]
exist:是否存在 $exist:false/true
where:js查询 $where:'this.sex=0'
>db.demoDB.find({'sex':{$in:[0,1]}})
模糊查询--使用正则表达式
>db.demoDB.find({name:/^b.*/i})