zoukankan      html  css  js  c++  java
  • MongoDB数据修改案例

    数据更新操作

    队友MongoDB而言,数据更新是一件非常麻烦的事情。Mongo通常会存副本数据,数据有变更的时候,最好的做法是删除MongoDB的数据,重新插入。

    Mongo中提供了两个函数,一个是save(),一个是update()。

    范例:更新存在的数据 -- 将年龄是19岁的人的成绩都更新为100分

    只更新查询出的第一条数据,没有不增加

    db.students.update({"age":19},{"$set":{"score":100}},false,false);
    
    

    所有满足条件的数据都更新

    db.students.update({"age":19},{"$set":{"score":100}},false,true);
    
    

    范例: 更新不存在的数据 -- 将年龄是30岁的人更新他的名称name

    db.students.update({"age":30},{"$set":{"name":"小李子"}},true,false);
    

    第一个true表示如果不存在,则创建一条新数据。这种功能用的比较少。

    修改器

    1.inc 主要针对一个数字字段,增加某个字段的数据内容。

    范例:将所有年龄为19岁的学生成绩一律减少30分。

    db.students.update({"age":19},{"$inc":{"score":-30,"age":1}},false,true);
    
    

    2.set 进行内容重新设置

    范例:将年龄为20的人的成绩修改为89

    db.students.update({"age":19},{"$set":{"score":-89}},false,true);
    

    3.unset 删除某个成员的内容

    范例:删除张三的年龄和成绩信息

    db.students.update({"name":"张三"},{"$unset":{"age":1,"score":1}},false,true);
    
    

    4.push 相当于将内容追加到指定的成员之中(基本上是用于数组)。一次增加一个元素,如果增加的是数组,表示一次增加一个数组。

    范例:向张三添加课程信息

    db.students.update({"name":"张三"},{"$push":{"course":["语文","数学"]}},false,true);
    

    如果没有数组,就进行一个新的数组的创建,如果有则进行内容的追加。

    5.pushAll与push类似,可以一次追加多个内容到数组里面

    db.students.update({"name":"张三"},{"$pushAll":{"course":["美术","音乐"]}},false,true);
    
    

    6.addToSet 如果已存在就不添加了

    db.students.update({"name":"张三"},{"$addToSet":{"course":"美术"}},false,true);
    

    7.pop 删除数组内的数据。文档是行,成员是列,集合是表。-1表示第一个课程。1表示最后一个课程。

    db.students.update({"name":"张三"},{"$pop":{"course":-1}});
    

    8.pull 从数组中删除指定内容的数据

    db.students.update({"name":"张三"},{"$pull":{"course":"美术"}});
    

    9.pullAll一次性删除多个内容

    db.students.update({"name":"张三"},{"$pullAll":{"course":["音乐","舞蹈"]}});
    

    10.rename 为成员名称重命名

    db.students.update({"name":"张三"},{"$rename":{"course":"课程"}},false,true);
    
  • 相关阅读:
    wenbao与manacher
    wenbao与拓扑排序
    wenbao与邻接表
    wenbao与最短路floyd
    wenbao与最短路dij
    wenbao与后缀自动机(SAM)
    wenbao与欧拉回路
    wenbao与字符串Hash
    wenbao与后缀数组
    wenbao与扩展kmp
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/7856800.html
Copyright © 2011-2022 走看看