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. python 连接sql server数据库的示例代码

    首先,到http://pymssql.sourceforge.net/下载pymssql模块,必须安装这个模块才可以用python连接mysql 以下是sql server的操作代码,需要注意字符集 ...

  2. XMLHttpRequest使用详解

    1.什么是XMLHttpRequest XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信,这就是我们熟悉的AJAX.早期,各个浏览器的实现都不同,HTM ...

  3. Hadoop 新 MapReduce 框架 Yarn 详解【转】

    [转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/] 简介: 本文介绍了 Hadoop 自 0.23.0 版本 ...

  4. [未解决]Ajax-读取并解析XML,动态生成select下拉列表框

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  5. AMQP学习 & RabbitMQ 与 ActiveMQ、ZeroMQ以及Kafka的比较

    之前写了一篇文章关于Active以及消息队列推拉模式的文章,可以参考:link 关于 Active 与 RabbitMQ以及其他的比较,有如下记录: 这篇文章 link 提到: 基本介绍RabbitM ...

  6. windows下好用的markdown编辑器

    Markdown是一种用来写作的轻量级[标记语言],它用简洁的语法代替了排版.字体设置,使我们可以专心写作,目前被越来越多的开发者,写作爱好者使用.Markdown的语法十分简单,常用的标记不超过十个 ...

  7. js中Math.round、parseInt、Math.floor和Math.ceil小数取整小结【转】

    [摘要:之前常常正在代码中看到Math.round.parseInt.Math.floor战Math.ceil那四个函数,固然晓得效果皆能够返回一个整数,然则对他们四者的差别照样没有太清晰,本日便做一 ...

  8. 纯css3实现的创意图片放大镜

    今天要给大家分享的的一款用纯css3实现的图片放大镜特效.页面打开五个小图显示于页面.当鼠标经过图片时,当前图片以灰色背景图的形式展示.效果非常不错. 在线预览   源码下载 实现的代码: html代 ...

  9. 【WPF】C#代码动态添加控件的Margin属性

    需求:一组按钮的数据是从服务器中Json数据发过来的,需要根据这个Json数据动态地添加这组按钮. 工具:使用http://www.newtonsoft.com/json来解析Json. 过程:C#代 ...

  10. Android——进度条控制图片透明度

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