启动MongoDB的服务
sudo service mongodb start
进入MongoDB命令行操作界面
mongo
显示数据库列表
show dbs
切换当前数据库(创建数据库)
use [database_name]
删除当前数据库
db.dropDatabase()
显示当前数据库中的集合
show collections
创建集合
db.createCollection("BizUser")
创建集合(带初始化参数)
- capped:类型为boolean,如果为true则为创建一个固定大小的集合,当集合中的数据条目达到最大时自动覆盖以前的条目。
- autoIndexID:类型为boolean,默认为false,如果设置为true,则会在_id上创建索引。
- size:指定集合字节最大值,当capped为true时需要指定。单位为byte
- max:指定集合中数据的最大条数。
db.createCollection(
"BizUser",
{capped:1,autoIndexID:1,size:6142800,max:10000}
)
删除集合,下面代码是删除BizUser集合的示例
db.BizUser.drop()
添加与修改操作
向集合中插入数据,insert与save都是向集合汇总插入数据。如果新增的数据中有主键,并且重复,则使用insert会报错,但是save会更改原来的数据。下面代码是向BizUser集合中插入数据的示例
db.BizUser.insert([{name:"user1",password:"123456"},{name:"user2",password:"123"}])
db.BizUser.save([{name:"user1",password:"123456"},{name:"user2",password:"123"}])
也可以先定义文档再往集合中插入
user1=({name:"user1",password:"111"})
db.BizUser.insert(user1)
更新文档,下面代码是把name为user1的第一条文档更新为{name:”cx”,age:22}
db.BizUser.update({name:"user1"},{name:"cx",age:22})
如果只是需要设置文档里的指定的一些域的值,则需要加$set关键字,下面代码是把name为user1的第一条文档的age值更更新为22,sex的值更新为”M”
db.BizUser.update({name:"user1"},{$set:{age:22,sex:"M"}})
如果是要更新所有符合查询条件的文档,则需要加上multi:true,下面代码是把所有age为22的文档中的age的值改为23
db.BizUser.update({age:"22"},{$set:{age:23}})
查询操作
查看集合下的数据,不带任何参数则默认返回所有的数据
db.BizUser.find()
使用pretty()方法使显示的结果更美观
db.BizUser.find().pretty()
查询中的AND,在find()中传入多个键值对时,即会当作AND查询处理。下面代码是在BizUser集合中查找age为18并且sex为“M”的数据
db.BizUser.find({age:"18",sex:"M"})
查询中的OR,M哦能够DB中,OR查询语句以$or作为关键词。下面代码是在BizUser集合中查找age为18或者age为19的数据
db.BizUser.find(
{
$or:[
{age:"18"},
{age:"19"}
]
}
)
同时使用AND和OR,下面代码是在BizUser集合中查找sex为“F”,并且age大于30或者name等于user1的数据。
($gt表示大于、$lt表示小于、$le表示小于等于、$ge表示大于等于、$ne表示不等于)
db.BizUser.find(
{
sex:"F",
$or:[
{age:{$gt:30}},
{name:"user1"}
]
}
)
条件操作符1
- $gt表示大于
- $lt表示小于
- $ge表示大于等于
- $le表示小于等于
- $ne表示不等于
db.BizUser.find({age:{$le:22}})
条件操作符2($type)
type的值:
- 1-双精度
- 2-字符串
- 3-对象
- 4-数组
- 5-二进制数据
- 7-对象ID
- 8-布尔类型
- 9-数据
- 10-空
- 11-正则表达式
- 13-JS代码
- 14-符号
- 15-有作用域的JS代码
- 16-32位整型数
- 17-时间戳
- 18-64位整型数
- 255-Min key
- 127-Max key
下面代码是查询name的类型为字符串的数据
db.BizUser.find({name:{$type:2}})
limit读取指定数量的数据记录,下面代码是读取BizUser集合中前10条记录
db.BizUser.find().limit(10)
skip读取时跳过指定数量的数据记录,下面代码是读取BizUser集合中第6条到第15条记录
db.BizUser.find().limit(10).skip(5)
sort对查询的结果进行排序,下面代码是读取BizUser集合中的数据,并按照age进行升序排序
- 1表示升序
- -1表示降序
db.BizUser.find().sort({"age":1})
删除操作
使用remove()进行删除,下面代码是删除集合中name为user1的文档
db.BizUser.remove({name:"user1"})