MongoDB数据类型操作:CURD
1、添加数据:
mongodb里存储数据的格式文档形式,以bson格式的文档形式。


创建数据库:
- > use tp5shop
- switched to db tp5shop
- > db.getName()
- tp5shop
使用切换库,不存在自动创建;
获取当前库的命令;
普通数据添加:

多维数据对象添加:

正常写二到三级就可以了。
数组信息添加:

数据查询:
db.集合名称.find()
db.集合名称.findOne()



注意括号里面的大括号。
范围条件查询:

mysql < <= > >= !=
mongo $lt $lte $gt $gte $ne
有点类似Shell中的语法。
多条件查询:
类似mysql中的and方法:


mysql的查询和mongodb的查询的方法对比。
括号是要一对一对地去写。
多维字段查询:
通过多维字段的值进行查询:

注意:多维数组要用引号括起来。
数组条件查询:
db.集合名称.find({字段(数组):{‘$all’:[v1,v2]}})
- db.goods.find({color:'black'})
- db.goods.find({color:{'$all':['white','gold']}})
限制查询字段:
在实际使用环境,不需要查询并显示太多的字段,可以选择设定显示。
语法:db.集合名称.find({查询条件},{筛选条件})
显示为1,不显示为0 要是1都是1,要是0都是0 _id除外
- db.goods.find({color:black},{name:1,price:1})
- db.goods.find({},{name:1})
-
- db.goods.find({color:{'$all':['black','gold']}},{name:1,_id:0})
注意采用合适的方式,显示出查询字段值内容。
如果想不加id,可以使用:
db.goods.find({},{name:1,_id:0)
_id是mongodb数据库里的集合中,默认的主键id,具有索引内容,通过主键查询,会很快的查询速度。不要随意修改此值,使用默认即可。
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);
取第一个。
跳过第一个,然后取一个。也就是取的第二个。
到官方网站上检查

按大小排一个序,然后取第一个。这个主要是自己的思想。

mysql的相同语法:
select name,price from goods order by price desc limit 1;
修改数据:
语法:db.集合名称.update({查询条件},{修改条件})
updateOne() 修改匹配的第一条
updateMany() 修改匹配所有
有$set的修改:
db.goods.update({name:'iphonex'},{'$set':{price:7999}})
db.goods.updateOne({name:'xiaomi5'},{'$set':{price:1500}})
multi设置为true,是更新多条。
删除数据:
删除记录:
不会删除数据,而是状态的标注;逻辑删除、软删除。
回收站是标注状态的。


语法: db.集合名称.remove({查询条件})
deleteOne() 删除匹配的第一条
deleteMany() 删除匹配的多
db.goods.remove({price:8550})
remove默认是删除多个的。
db.goods.deleteMany({price:{'$lte':2000}})

db.goods.remove({})
db.goods.remove({},{justOne: 1})
这个是删除一条。

把某一列进行了删除。
这个在我们的一般业务中不太常见,但是这是mongodb还是比较灵活的操作。