• mongoDB的shell数组操作器


    mongoDB数组操作器
     
    $push会向数组末尾加入一个元素,如果数组不存在,则会创建这个数组。
    增加评论comments:
    db.blog.posts.update({"title":"a blog post"}
     ,{
     $push:
     {"comments":{"name":"joe","email":"joe@example.com"}}
     }
    )
    最终的结果是:
    {
     "_id":ObjectId("8df8df78d7f7d8df7"),
     "title":"a blog post"
     "comments":[{
      "name":"joe",
      "email":"joe@example.com"
     }]
    }
     
    $ne如果一个值不在数组里面,就加进去:
    db.papers.update({"authors cited":{"$ne":"richie"}},
     {$push:{"authors cited":"richie"}})
    也可以用$addToSet完成同样的功能:
    db.papers.update({"_id":ObjectId("sdf9sd7f67df89d")},
     {"$addToSet":{"authors cited":"richie"}})
     
    $addToSet和$each组合起来,可以添加多个不同的值:
    db.papers.update({"_id":ObjectId("sdf9sd7f67df89d")},
     {"$addToSet":{"authors cited":{"$each":["richie","dff","dsf"]}}})
     
    $pop删除数组中的元素:
    删除末尾的元素:{$pop:{key:1}}
    删除头部的元素:{$pop:{key:-1}}
     
    $pull基于特定条件删除元素:
    db.lists.insert({"todo":["dishes","laundry","dry cleaning"]})
    db.lists.update({},{"$pull":{"todo":"laundry"}})
     
    修改数组元素的数量:
    {
     "_id":ObjectId("df89d8fd7d"),
     "content":"...",
     "comments":[
      {
       "comment":"good post",
       "author":"joy",
       "votes":0
      },
      {
       "comment":"good post",
       "author":"joyn",
       "votes":0
      },
      {
       "comment":"good post",
       "author":"andy",
       "votes":0
      }
     ]
    }
    如果想增加第一个评论的投票数量:
    db.blog.update("post":post_id},{"$inc":{"comments.0.votes"}:1})
     
    修改用户名:($用于定位已匹配的的元素,如果多个,就匹配第一个)
    db.blog.update({comments.author:"andy"}:{"$set":{"comments.$.author":"jim"}})
  • 相关阅读:
    android之PackageManager简单介绍
    西门子PLC学习笔记二-(工作记录)
    node.js第十课(HTTPserver)
    ubuntu ???????????? no permissions 问题解决
    Web API 设计摘要
    公共 DNS server IP 地址
    用Unicode迎接未来
    vs2010公布时去除msvcp100.dll和msvcr100.dll图讲解明
    linux串口驱动分析
    C++ 中dynamic_cast<>的用法
  • 原文地址:https://www.cnblogs.com/silentjesse/p/3598422.html
Copyright © 2020-2023  润新知