• MongoDB修改器的使用1


    为什么要使用修改器? 

       通常我们只会修改文档的一部分,这时候更新整个文档就显得很麻烦,通常是通过原子性的更新修改器来完成。

    1."$set"修改器

       "$set"用来指定某个字段,如果不存在,则创建。这对部分更新或者添加来说就非常方便了。

    如:

     step1:往users数据库长如一条数据,通过JavaScript来完成:

       var logs={name:"joe",age:30,sex:"female",location:"Wisconsin"}

       logs

     运行:

    1 /* 1 */
    2 {
    3     "name" : "joe",
    4     "age" : 30.0,
    5     "sex" : "female",
    6     "location" : "Wisconsin"
    7 }

    step2:放入users数据库

      db.users.insert(logs)

    查询结果:

      db.users.find()

    /* 1 */
    {
        "_id" : ObjectId("575a2acfbc9fb3f12145a004"),
        "name" : "joe",
        "age" : 30.0,
        "sex" : "female",
        "location" : "Wisconsin"
    }

    step3:加入要插入一条喜欢的书籍:

    db.users.update({name:"joe"},{"$set":{"favorite book":"War and Peace"}})

    然后查询db.users.find()

    /* 1 */
    {
        "_id" : ObjectId("575a2acfbc9fb3f12145a004"),
        "name" : "joe",
        "age" : 30.0,
        "sex" : "female",
        "location" : "Wisconsin",
        "favorite book" : "War and Peace"
    }

    从结果总可以看出,数据中添加了一条favorite book字段,达到了我们想要的结果^_^;

    step4:如果joe喜欢另一本书,继续来看"$set"如何大发神威;

    /* 1 */
    {
        "_id" : ObjectId("575a2acfbc9fb3f12145a004"),
        "name" : "joe",
        "age" : 30.0,
        "sex" : "female",
        "location" : "Wisconsin",
        "favorite book" : "forrest gump"
    }

    "$Set"还可以修改键的类型,比如喜欢的是好多书,就可以放在数组中。

    如下:

     db.users.update({name:"joe"},{"$set":{"favorite book":["cat's Cradle","Foundation Trilogy","Ender's Game"]}})

    /* 1 */
    {
        "_id" : ObjectId("575a2acfbc9fb3f12145a004"),
        "name" : "joe",
        "age" : 30.0,
        "sex" : "female",
        "location" : "Wisconsin",
        "favorite book" : [ 
            "cat's Cradle", 
            "Foundation Trilogy", 
            "Ender's Game"
        ]
    }

    还可以通过"$unset"来操作删除某个字段

    db.users.update({name:"joe"},{"$unset":{"favorite book":1}})

    /* 1 */
    {
        "_id" : ObjectId("575a2acfbc9fb3f12145a004"),
        "name" : "joe",
        "age" : 30.0,
        "sex" : "female",
        "location" : "Wisconsin"
    }

    这样就和最开始一样了。

    "$set"还可以修改内嵌的文档

    如:

    var log={title:"A Blog Post",content:"...",author:{name:"joe",email:"joe@qq.com"}}
    log
    db.blog.posts.insert(log)
    db.blog.posts.findOne()

    /* 1 */
    {
        "_id" : ObjectId("575a313fbc9fb3f12145a008"),
        "title" : "A Blog Post",
        "content" : "...",
        "author" : {
            "name" : "joe",
            "email" : "joe@qq.com"
        }
    }

    db.blog.posts.update({"author.name":"joe"},{"$set":{"author.name":"joe Mather"}})

    /* 1 */
    {
        "_id" : ObjectId("575a313fbc9fb3f12145a008"),
        "title" : "A Blog Post",
        "content" : "...",
        "author" : {
            "name" : "joe Mather",
            "email" : "joe@qq.com"
        }
    }

    总结:$开头的修改器都是通过主键key来修改对应的内容。

       

  • 相关阅读:
    5.Docker服务进程关系
    朴素贝叶斯知识点概括
    k近邻法(KNN)知识点概括
    机器学习的应用实例
    HNU 10111 0-1矩阵
    CSU 1421 Necklace
    Poj 3469 Dual Core CPU
    Poj 2135 Farm Tour
    Poj 3180 The Cow Prom
    HDU 1004 Let the Balloon Rise
  • 原文地址:https://www.cnblogs.com/lwy19998273333/p/5573430.html
Copyright © 2020-2023  润新知