use dbname :切换和创建数据库
show dbs :查看所有数据库
db.stats():查看当前数据库信息
db.createCollection("stu"):创建集合(不固定大小),先切数据库
db.createCollection("stu",{capped:True,size:10,max:100}):创建固定大小的集合,
db.dropDatabase():删除数据库,删哪个先切换到哪个数据库下
show collections:查看当前数据库所有集合
db.集合名称.drop():删除集合
创建固定大小的集合db.createCollection("集合名称")
固定大小的集合(当集合存满时,新的数据会覆盖之前的数据)
db.createCollection("集合名称,
{capped:True,
size:10,指集合大小(单位是字节),
max:100指定集合在存储的最大文档数
}
)
size的优先级更高
插入数据:
插入单条数据
db.student.insert({name:'王霞',age:18,gender:1,})
插入多条数据
db.student.insert([{name:'xiaoli',age:19,gender:0},{name:'xiaoqi',age:18,gender:1}])
查看集合中的数据
db.student.find()
插入数据是如果没有指定id,会自动生成一个,也可以自己指定。ID是一个主键也是一个索引
更新数据:
更新前:
{ "_id" : ObjectId("5c2476f6173b783193b0b16c"), "name" : "xiaoqi", "age" : 18, "gender" : 1 }
db.student.update({name:'xiaoqi'},{name:'xiaodong'},{upsert :可选,这个参数的意思是,如果不存在update 的记录,是否插入objNew,true为插入,默认是false,
multi:可选,mongodb 默认是false,
只更新找到的第 一条记录,如果这个参数为true,就把按条件查出来多条记录 全部更新。
})全文档更新,ID不变;
更新后:
{ "_id" : ObjectId("5c2476f6173b783193b0b16c"), "name" : "xiaodong" }
更新前:
{ "_id" : ObjectId("5c2476f6173b783193b0b16b"), "name" : "xiaoli", "age" : 19, "gender" : 0 }
db.student.update({name:'xiaoli'},{$set:{age:3}})局部更新
更新后:
{ "_id" : ObjectId("5c2476f6173b783193b0b16b"), "name" : "xiaoli", "age" : 3, "gender" : 0 }
save:会根据_id这个字段取集合下查找,如果_id存在,则进行全文档更新,如果不_id存在, 则插入一条新数据
db.集合名称.save(
{id:'','key':'value',....}
)
删除
db.集合名称.remove({key:'value'},{justOne:true})
db.集合名称.drop
db.dropDatabase()
查询
db.集合名称.find()查询所有
db.集合名称.find({'key':'value'})
db.集合名称.findOne({'key':'value'})查询一条
sudo service mongodb start
lte 小于等于
gte大于等于
多条件查询
查询时间大于100并且演员是李连杰
db.集合名称.find(
{
'times':{$gt:100},
'actors':'李连杰',
}
)
查询时间大于100或者演员是李连杰
db.集合名称.find(
{
gt:100}},{actor:'李连杰'}]
})
查询时间大于100或者演员是李连杰,并且标题为少年方世玉的文档
db.集合名称.find(
{
gt:100}},{actor:'李连杰'}],
title:'少年方世玉'
})
范围运算符
db.movie.find({actors:/^李/}) db.movie.find({actors:{$regex:'李'}}) 查询以李开头的演员
$type:只返回符合数据类型的文档
db.集合名称.find({
'key':{$type:'数据类型'}
})
limit:限制返回
db.集合名称.find().limit(3) 查询前3条
db.集合名称.find().skip(2).limit(3) 跳过前2条,查询3条
sort:排序 1:升序 -1:降序
db.集合名称.find().sort({'times':-1}) 以时间降序查询
db.集合名称.find().sort({'times':1}) 以时间升序查询
去重
db.集合名称.distinct(
'actors',{times:{$gte:90}}
)
project:投影 1显示 0不显示 查询想要的字段
db.集合名称.find({},{'title':1})
count:统计
db.movie.count() 查询集合中有几条文档
db.集合名称.find().count()
db.movie.count({actors:'李连杰'})
db.集合名称.find({actors:'李连杰'}).count()
网友评论