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"}})

mongoDB的shell数组操作器的更多相关文章

  1. Mongodb DB shell数据操作

    shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的. Ø 数据库 1.Help查看命令提示 help db.help(); db.yo ...

  2. shell数组操作

    1.数组定义,shell使用一对括号表示数组,数组元素间用"空格"分隔 # 空数组arr1 arr1=() # 数组arr2,成员分别是1, 2, 3, 4, 5, 6 arr2= ...

  3. shell 数组操作

    1. 定义数组: var_array=(one two three four five) 2.常用操作 获取数组长度: ${#var_array[@]} 获取所有数组元素:  ${var_array[ ...

  4. MongoDB之$关键字及$修改器$set $inc $push $pull $pop

    一.查询中常见的  等于   大于  小于  大于等于  小于等于 等于:用':' 大于:用'$gt' 小于:用'$lt' 大于等于:用'$gte' 小于等于:用'$lte' MongoDB的操作就是 ...

  5. MongoDB数组修改器更新数据(转)

    MongoDB数组修改器更新数据    这里,我们将了解一下数组修改器.数组,是我们经常看到和使用到的且非常有用的数据结构:它不仅可以通过索进行引用,还可以作为集合来使用.数组修改器,顾名思义,它是用 ...

  6. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  7. 第三章 JQuery: HelloWorld--常见方法--css--选择器--筛选器--属性--效果--事件--数组操作--字符串操作--对象转换

    1.jQuery简介 为了简化JavaScript 的开发, 一些JavsScript 库诞生了. JavaScript库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互的页面, 并且兼 ...

  8. Shell系列(38)- 数组操作→取值、遍历、替换、删除

    引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...

  9. MongoDB学习笔记(数据操作)

    1.  批量插入:     以数组的方式一次插入多个文档可以在单次TCP请求中完成,避免了多次请求中的额外开销.就数据传输量而言,批量插入的数据中仅包含一份消息头,而多次单条插入则会在每次插入数据时封 ...

随机推荐

  1. 日期时间函数(1)-time()&gmtime()&strftime()&localtime()

    ◆time() 取得当前时间.此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数.如果参数t为非空指针的话, 此函数也会将返回值存到t指针所指的内存. 成功则返回秒数 ...

  2. android笔记一 控件属性

    <?xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns:android= ...

  3. 解决MAC下ctags -R无效的问题

    MAC下自带了ctags,与我们常用的是不同的. 我们需要去重新下载一个ctags并重新安装 1.去http://ctags.sourceforge.net/下载Ctags的最新版本源代码 2.tar ...

  4. c++ 使用vs2010调用 win32api

    以前读书时都是用vc6.0.后来学c#用vs.装系统只装了vs2010.今天用vs2010写c++程序.发现有点陌生.就总结下,免得以后忘记. 首先用vs2010选择c++语言.新建一个win32控制 ...

  5. div,contenteditable编辑器之ctrl+enter换行,enter发送

    //回车发消息 $scope.keyDownSend = function ($event) { var keycode = window.event?$event.keyCode:$event.wh ...

  6. GetLastError()返回值大全

    [0]-操作成功完成.[1]-功能错误.[2]-系统找不到指定的文件.[3]-系统找不到指定的路径.[4]-系统无法打开文件.[5]-拒绝访问.[6]-句柄无效.[7]-存储控制块被损坏.[8]-存储 ...

  7. mysql从文件中导入数据

    linux: load data infile '/tmp/dnslog.txt' into table dnslog_cnnic_cn fields terminated by ' ' lines ...

  8. Loadrunner监控windows系统“找不到网络路径”问题解决

    一.监控windows系统: 1.监视连接前的准备工作 1)进入被监视windows系统,开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Ser ...

  9. 推荐10款纯css3实现的实用按钮

    在2014年的双11即将来临之季,爱编程小编为大家整理10款纯css3实现的按钮.希望这对坚守在前端的码农们有所帮助.亲,如果你有好的资源也可在本文留言,让从事编码的程序员们抱团.工作更轻松. No1 ...

  10. MAC上类apt-get工具brew的安装与使用

    对于习惯了linux系统的人来说,使用yum或者apt-get来在线安装软件是一件非常愉快的事情.这些工具能够解决依赖问题.使得安装过程变得简单快捷. 在使用MAC的时候,也会想:MAC OS上有没有 ...