monggodb学习过程,更新

  

今天看书看到mongodb权威指南这本书对更新这一篇进行了详细详解,因为知识点有点多,所以博客记录一下,如果只是看我觉得明天就忘了。

更新文档有两种方式:

1,文档替换,2,修改器替换(只是修改单个字段的内容)

关于更新有哪些参数可以看一下帮助文档

db> db.blog.update   function  (obj,查询,插入,,多)   查询:条件   obj:对象,更新的类容   插入:判断更新的条件是否存在   多:默认情况下更新只对符合匹配条件的第一个文档执行操作,要是这个为真,就是配置内容所以都更新

文档替换

当前的数据类型是

wangaimin>, db.test.findOne({“名称”:“bob”})   {   ,,,,,,,,“_id”:, ObjectId (“58 e4b6410b8bd344936c8553”),   ,,,,,,,“名字”,:,“bob”,   ,,,,,,,“电子邮件”,:,“bob.com.cn”,   ,,,,,,,“内容”,:,“nice 文章”   }

我需要变成这个样子:

wangaimin>, db.test.find({“名字”,:,“bob”})   {," _id ": ObjectId (“58 e4b6410b8bd344936c8553”),   “名称”,:“鲍勃”,,   “评论”,:,{,“电子邮件”:“bob.com.cn”,“内容”,:,“nice 文章”,},   }

操作步骤是:

wangaimin>, var 测试=db.test.findOne({“名称”:“bob”})   Test.comments={“内容”,“电子邮件”:Test.email: Test.content}   delete  Test.content   delete  Test.email   db.test.update({“名字”,:,“bob”},测试)   其实这个地方有一个坑,就是_id,如果你匹配中有多个名字=癰ob”,你就会报错,_id必须是唯一的,所以可以也可以执行delete 测试。_id,这里没有写的很详细,大家可以仔细想一下,如果不想是没有记忆点

使用修改器:

1,美元将修改器

修改之前:   wangaimin>, db.test.find({“名字”,:,“bob”})   {," _id ": ObjectId (“58 e4b6410b8bd344936c8553”),“名字”,:,“鲍勃”,“评论”,:,{,“电子邮件”:“bob.com.cn”,“内容”,:,“nice 文章”,},}      命令:db.test.update({“名字”,:,“bob”},{$设置:{“名称”:“bob”}})   修改之后:   wangaimin>, db.test.find({“名字”,:,“BOB”})   {," _id ": ObjectId (“58 e4b6410b8bd344936c8553”),“名字”,:,“鲍勃”,“评论”,:,{,“电子邮件”:“bob.com.cn”,“内容”,:,“nice 文章”,},}      修改内嵌文档:   命令:wangaimin>, db.test.update({“名字”,:,“BOB”},{$设置:{“comments.content”:“change  le“}})   修改之后:   wangaimin>, db.test.find({“名字”,:,“BOB”})   {," _id ": ObjectId (“58 e4b6410b8bd344936c8553”),“名字”,:,“鲍勃”,“评论”,:,{,“电子邮件”:“bob.com.cn”,“内容”,:,“change 勒”,},} 2,inc 美元;增加和减少   注意:$ inc 键的值必须是数字,不能为字符串,数组或其他非数字的值   db.test.find ()   {," _id ": ObjectId (“58 e4bb4b0b8bd344936c8554”),“数量”,:,10,}   wangaimin>, db.test.update ({number: 10}, {$ . n:行情):{number: 3}})   wangaimin>, db.test.find ()   {," _id ": ObjectId (“58 e4bb4b0b8bd344936c8554”),“数量”,:,13,}

3,推动美元添加数组

如果数组已经存在,美元将会向已有的数组末尾加入一个元素,要是没有就创建一个新的数组

,db.test.find ()   {," _id ": ObjectId (“58 e4bd5f0b8bd344936c8555”),“学校”,:,“bd”,}   db.test.update({“学校”:“bd”},{推动美元,{“列表”:{“名称”:“zhangsan”,“年龄”:20}}})      db.test.find ()   {," _id ": ObjectId (“58 e4bd5f0b8bd344936c8555”),“学校”,:,“bd”,“列表”,:,“,{,“名字”,:,“zhangsan”,“年龄”,:,20,},],}

4,使用美元每添加多个值

db.test.update({“学校”:“bd”},{$推:{“列表”:{$每个:[{“名称”:“zhangsan”,“年龄”:21},{“名称”:“zhangsan”,“年龄”:22},{“名称”:“zhangsan”,“年龄”:23},{“名称”:“zhangsan”,“年龄”:24}]}}})      {," _id ": ObjectId (“58 e4bd5f0b8bd344936c8555”),“学校”,:,“bd”,“列表”,:,“,{,“名字”,:,“zhangsan”,“年龄”,:,20,},,{,“名字”,:,“zhangsan”,“年龄”,:,21,},,{,“名字”,:,“zhangsan”,“年龄”,:,22,},,{,“名字”,:,“zhangsan”,“年龄”,:,23,},,{,“名字”,:,“zhangsan”,“年龄”,:,24,},],}

monggodb学习过程,更新