• python 操作mongoDB指令


    默认情况下,mongo的修改只会修改找出来的第一条数据,如果要修改查询匹配的所有记录,必须使用multi那个参数。

    修改的操作符说明:

    $inc 以给定的值增长某个字段;

    $set 替换给定的键值;

    $push 如果字段是一个数组,将把给定的值添加到数组字段内,如果不存在,将自动添加,如果字段非数组,将报出错误提示;

    $pushAll 跟push类似,只不过参数为数组;

    $unset 删除一个字段

    $addToSet 跟push类似,只不过如果值已经存在,则不会添加;

    $pop 移除某个数组字段的第一个值或最后一个值,根据1或-1区分;

    $pull 如果字段是一个数组,可以用这个操作符移除数组内满足条件的值;

    $pullAll 跟pull类似,只不过参数为数组;

    $rename 修改字段的名字;

    实例:


     

      达到最终效果: users(collection)

    [javascript] view plain copy
     
    1. {  
    2.  _id : ObjectId("50897dbb9b96971d287202a9"),  
    3.  name : "Jane",  
    4.  age:20,  
    5.  likes : [ "tennis", "golf" ],  
    6.  registered : false,  
    7.  addr : {  
    8.    city : "Lyon",  
    9.    country : "France"   
    10.  }   
    11. }  


     

    为了实践update的不同命令,先插入基本

    [javascript] view plain copy
     
    1. db.users.insert({name:"Jane",age:10})  


    db.users.update(query,obj,upsert,multi)  

    参数分别为 query查询条件{name:"Jane"} ; obj更改对象 ;upsert 更新还是插入(布尔值); multi(是否多行更新)

    在命令中输入 db.users.update 可以直接查看update函数的实现逻辑 

    实际upsert可以为object 即{upsert:true,multi:true}

    1、$inc  为某个字段的增加指定的值 value=old+inc; 操作字段不许为数字

    [javascript] view plain copy
     
    1. db.users.update({name:"Jane"},{$inc:{age:10}})  

    2、$set 替换原有字段值

    [javascript] view plain copy
     
    1. db.users.update({name:"Jane"},{$set:{age:20}})  

    3、$push,$pushAll 将数据加入字段数组中

    [javascript] view plain copy
     
    1. db.users.update({name:"Jane"},{$pushAll:{like:["golf"]}})  



     剩余的指令都是一个道理 再次我就不写了

    最后还出现了一个问题,就是 addr字段,如果我只给其添加了一个city : "Lyon",那么county如果更新呢?

    类似上图 ,addr字段缺少一个county:"France",该如何添加呢?

    问题先放那 我去查查资料 解决了再补上

  • 相关阅读:
    centos7安装kubenetes
    用户密码字典
    curl使用
    docker部署rabbitmq集群
    记一次使用docker搭建fastdfs服务的过程
    filebeat删除多余标签
    Python format格式化输出
    python3 统计NGINX pv uv 最多IP访问
    linux修改网卡名为eth0
    模式查找
  • 原文地址:https://www.cnblogs.com/setname/p/7422824.html
Copyright © 2020-2023  润新知