文章目录
- 一、添加数据
- 创建一个库
- 获取当前库
- 普通数据添加
- 多维数据对象添加
- 数组信息添加
- 二、查询数据
- 笼统方式查询
- 条件限制查询
- 范围条件查询
- 多个条件查询
- 多维字段查询
- 数组条件查询
- 限制查询字段
- $or查询
- count 语法
- limit语法 skip语法
- 三、修改数据
- 有$set的修改
- 没有$set的修改
- 四、删除数据
- 删除记录
- 删除字段
一、添加数据
mongodb里存储数据的格式文档形式,以bson格式的文档形式。
在mongodb中,可有无需创建数据库和集合,使用的时候会自动创建
创建一个库
> use goods
#使用切换库
获取当前库
> db.getName()
语法:
db.集合名称.insert(bson格式数据)
普通数据添加
db.goods.insert({name:'huawei01',price:1000,weight:135,number:35})
多维数据对象添加
db.goods.insert({area:{province:'beijing',city:'beijing'}})
数组信息添加
db.goods.insert({color:['black','white','red']})
二、查询数据
语法:db.集合名称.find(查询条件)
findOne(查询条件)
笼统方式查询
不进行条件限制,全部取出来。
findOne会取出符合结果的第一条信息,并且以格式化形式返回
db.goods.find()
db.goods.findOne()
条件限制查询
条件格式,所见及所得
db.goods.find({name:'xiaomimax'})
db.goods.findOne({name:'xiaomimax'})
范围条件查询
mysql < <= > >= !=
mongo $lt $lte $gt $gte $ne
db.goods.find({price:{'$lte':1999}})
db.goods.find({price:{'$lt':1999}})
多个条件查询
类似mysql中的AND语法
db.goods.find({price:{'$lte':1999},number:{'$gte':40}})
多维字段查询
通过多维字段的值进行查询
注意:多维字段需要用引号包含起来
db.goods.find({'area.city':'zhengzhou'});
数组条件查询
①查询满足其中之一即可显示
db.goods.find({color:'black'})
②满足查询条件所有的才可显示
db.集合名称.find({字段(数组):{‘$all’:[v1,v2]}})
db.goods.insert({name:'iphonex',price:8398,weight:100,number:200,area:{province:'jiangsu',city:'nanjing'},color:['gray','black','white','gold']})
db.goods.find({color:{'$all':['black','gold']}})
限制查询字段
在实际使用环境,不需要查询并显示太多的字段。可以选择设定显示。
语法:db.集合名称.find({查询条件},{筛选条件})
显示为1,不显示为0 要是1都是1,要是0都是0 _id除外
db.goods.find({color:{'$all':['black','gold']}},{name:1,_id:0})
$or查询
满足其中之一的条件就可以显示,类似mysql的中的or条件语法
select * from goods where price > 5000 or number >= 100
db.goods.find({'$or':[{price:{'$gt':5000}},{number:{'$gte':100}}]})
count 语法
返回结果的数量统计
链式操作
db.goods.count()
db.goods.find({price:{'$gt':5000}}).count()
db.goods.count({price:{'$gt':5000}})
limit语法 skip语法
类似于mysql中的limit(skip,length)语法
limit() 取几个
skip() 跳过几个
db.goods.find().limit(1);
db.goods.find().skip(1).limit(1);
三、修改数据
语法:db.集合名称.update({查询条件},{修改条件})
updateOne() 修改匹配的第一条
updateMany() 修改匹配所有条
有$set的修改
db.goods.update({name:'iphonex'},{'$set':{price:8500}})
没有$set的修改
没有$set关键字语法,把设置的字段进行修改,没有设置的就会被删除掉
db.goods.update({name:'iphonex'},{price:8550})
四、删除数据
删除记录
语法: db.集合名称.remove({查询条件})
deleteOne() 删除匹配的第一条
deleteMany() 删除匹配的多条
db.goods.remove({price:8550})
db.goods.deleteMany({price:{'$lte':2000}})
删除字段
可以删除某个字段的操作,使用的是update语法的$unset
db.goods.update({name:'huawei01'},{'$unset':{weight:0}})