博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 操作mongoDB指令
阅读量:6307 次
发布时间:2019-06-22

本文共 1306 字,大约阅读时间需要 4 分钟。

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

 

修改的操作符说明:

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

$set 替换给定的键值;

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

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

$unset 删除一个字段

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

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

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

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

$rename 修改字段的名字;

 

实例:

 

  达到最终效果: users(collection)

 

 

[javascript]   
 
  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]   
 
  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]   
 
  1. db.users.update({name:"Jane"},{$inc:{age:10}})  

 

 

2、$set 替换原有字段值

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

 

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

 

 

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

 

 

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

 

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

 

 

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

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

转载于:https://www.cnblogs.com/setname/p/7422824.html

你可能感兴趣的文章
使用OVS
查看>>
键盘回收的几种方法
查看>>
Python(条件判断和循环)
查看>>
day4 linux安装python
查看>>
LeetCode Container With Most Water (Two Pointers)
查看>>
vue (v-if show 问题)
查看>>
https基础
查看>>
css3 canvas之刮刮卡效果
查看>>
并查集模板
查看>>
RESTful Mongodb
查看>>
BZOJ3237:[AHOI2013]连通图(线段树分治,并查集)
查看>>
如何提高Ajax性能
查看>>
Android--自定义加载框
查看>>
LINUX下 lamp安装及配置
查看>>
BZOJ3105 [cqoi2013]新Nim游戏
查看>>
困惑的前置操作与后置操作
查看>>
SDNU 1269.整数序列(水题)
查看>>
BZOJ 2118 Dijkstra
查看>>
Go语言基础之结构体
查看>>
SpringCloud:Eureka Client项目搭建(Gradle项目)
查看>>