• 企业架构LNMP学习笔记56


    MongoDB数据类型操作:CURD

    1、添加数据:

    mongodb里存储数据的格式文档形式,以bson格式的文档形式。

     

    创建数据库:

    1. > use tp5shop
    2. switched to db tp5shop
    3. > db.getName()
    4. tp5shop

    使用切换库,不存在自动创建;

    获取当前库的命令;

    普通数据添加:

    多维数据对象添加:

    正常写二到三级就可以了。

    数组信息添加:

    数据查询:

    db.集合名称.find()

    db.集合名称.findOne()

     注意括号里面的大括号。

    范围条件查询:

    mysql < <= > >= !=

    mongo $lt $lte $gt $gte $ne

    有点类似Shell中的语法。

    多条件查询:

    类似mysql中的and方法:

    mysql的查询和mongodb的查询的方法对比。

    括号是要一对一对地去写。

    多维字段查询:

    通过多维字段的值进行查询:

    注意:多维数组要用引号括起来。

    数组条件查询:

    db.集合名称.find({字段(数组):{‘$all’:[v1,v2]}})

    1. db.goods.find({color:'black'})
    2. db.goods.find({color:{'$all':['white','gold']}})

    限制查询字段:

    在实际使用环境,不需要查询并显示太多的字段,可以选择设定显示。

    语法:db.集合名称.find({查询条件},{筛选条件})

    显示为1,不显示为0 要是1都是1,要是0都是0 _id除外

    1. db.goods.find({color:black},{name:1,price:1})
    2. db.goods.find({},{name:1})
    3. 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语法:

    返回结果的数量统计:

    链式操作:

    1. db.goods.count()
    2. db.goods.find({price:{'$gt':5000}}).count()
    3. db.goods.count({price:{'$gt':5000}})

    limit语法和skip语法:

    类似于mysql中的limit(skip,length)语法

    limit() 取几个

    skip() 跳过几个

    1. db.goods.find().limit(1);
    2. 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还是比较灵活的操作。

  • 相关阅读:
    亚马逊自养号进行买家测评需要注意什么?
    FastDFS-02-JavaAPI
    基于springboot的智慧养老平台设计与实现-计算机毕业设计源码和LW文档
    为什么宏定义要使用 do {...} while (0) ?
    【雷达原理】雷达测距原理及实现方法
    某校帮签到小程序m 加密参数解析
    Postgresql中的C/C++混编(JIT)
    未来的产品经理,需要什么样的原型设计工具?
    Rabbitmq----分布式场景下的应用
    踩坑笔记 NFS坑-2个pod读写文件延迟问题
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/132923759