zoukankan      html  css  js  c++  java
  • 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来修改对应的内容。

       

  • 相关阅读:
    优化TableView性能
    iOS应用性能调优的25个建议和技巧
    iOS-常见问题
    iOS开发——高级技术&地图功能的实现
    iOS开发——高级技术&调用地图功能的实现
    iOS开发——高级技术&通讯录功能的实现
    iOS开发——高级技术&系统应用于系统服务
    iOS开发——高级技术&蓝牙服务
    iOS开发——高级技术&社交服务
    ANDROID_MARS学习笔记_S01原始版_005_RadioGroupCheckBoxToast
  • 原文地址:https://www.cnblogs.com/lwy19998273333/p/5573430.html
Copyright © 2011-2022 走看看