一.查询中常见的  等于   大于  小于  大于等于  小于等于

等于:用':'

大于:用'$gt'

小于:用'$lt'

大于等于:用'$gte'

小于等于:用'$lte'

MongoDB的操作就是很类似ORM的操作

二.MongoDB中update修改器:$inc $set  $push $pull  $pop

1.$inc

Python中的变量 +=1, 将查询到的结果 加上某一个值然后保存

2.$set

如果没有这条数据的话,就自动添加一条

3.$unset

用来删除Key(field)的  相当于 关系型数据库中删除了 字段

4.$push

它是用来对Array(list)数据类型进行增加新元素的,相当于我们在python中的list.append()方法

5.$pull

$pull 就是指定删除Array中的某一个元素

6.$pop

指定删除Array中的第一个或最后一个元素

{$pop:{"test_list" : -1}}  -1 代表最前面, 1 代表最后边 (这和Python正好相反)

7.修改器补充

mongodb常用的数组修改器:

$inc   用来增加已有键的值,或者在键不存在的时候创建一个键,它只能修改整数型或浮点型,比如统计累加、投票.它键的值必须为数字,不能使用字符串、数组等其他值.
$set 用来指定一个键的值,如果这个键没有就创建它.有就修改.它还可以修改内嵌文档,甚至可以修改键的数据类型.
$unset 用来删除,将键完全删除.
$push 如果指定的键已经存在,它会向已有的数组末尾加入一个元素,要是没有就会创建一个数组.
$ne 如果一个值不在数组里面就把它加进去.
$addToSet 同上,有时候ne根本行不通,有些时候更适合用这个.它可以避免重复.
$each addToset和它组合起来可以添加多个不同的值,而用ne和push组合就不能实现.
$pop 可以从数组任何一端删除元素,{$pop : {key : 1}}1表示从末尾删除.-1表示从头部开始.
$pull 根据特定的条件来删除元素.它会将所有匹配的部分删掉.
$lt $lte 小,小于等于.
$gt $gte 大,大于等于.
$ne 表示不等于.它能用于所有类型的数据.
$in 可以用来查询一个键的多个值.
$nin 与之相反.
$or 更通用,用来完成多个键值的任意给定值.
$not 元条件句,可以用在任何其他条件之上.取模($mod)
$exists 用来条件判定键值是否已经存在.
$all 用来通过多个元素来匹配数组.
$size 可以用其查询制定长度的数组,size并不能与其他查询子句组合,但是这种查询可以通过在文档中添加一个size键的方式来实现.这样每次向指定数组添加元素的时候,同时增加size的值.不幸的是,这种技巧并不能与addToSet操作符同时使用.
$slice 返回数组的一个子集合.它也可以返回指定地方的指定条数.如果数组长度不够则返回指定地方之后的所有数据.另外,除非特别声明,否则使用slice时将返回文档中的所有键,这与其他的不太一样.
$elemMatch 它会限定条件进行分组,仅当需要对一个内嵌文档的多个键操作时才会用到. 并且只返回内嵌文档中符合条件的第一条数据
$where 用它可以执行任意JavaScript作为查询的一部分,这就使得查询能做(几乎)任何事情.最典型的就是比较两个文档的键的值是否相等.一定要避免使用where.因为它在速度上要比常规查询慢很多,只有走投无路才考虑. 将常规查询作为前置过滤,与where组合使用可以不牺牲性能.如果可能的话,用索引根据非where子句进行过滤,where只用于对结果进行调优. mongodb-aggregate: $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
$match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
$limit:用来限制MongoDB聚合管道返回的文档数。
$skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
$group:将集合中的文档分组,可用于统计结果。
$sort:将输入文档排序后输出。
$geoNear:输出接近某一地理位置的有序文档。
$sum 计算总和。
$avg 计算平均值
$min 获取集合中所有文档对应值得最小值。
$max 获取集合中所有文档对应值得最大值。
$push 在结果文档中插入值到一个数组中。
$addToSet 在结果文档中插入值到一个数组中,但不创建副本。可去重
$first 根据资源文档的排序获取第一个文档数据。
$last 根据资源文档的排序获取最后一个文档数据

  

MongoDB之$关键字及$修改器$set $inc $push $pull $pop的更多相关文章

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

    我们在之前的 MongoDB 之 手把手教你增删改查 MongoDB - 2 中提到过 $set 这个系统关键字,用来修改值的对吧 但是MongoDB中类似这样的关键字有很多, $lt $gt $lt ...

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

    MongoDB中的关键字有很多, $lt $gt $lte $gte 等等,这么多我们也不方便记,这里我们说说几个比较常见的 一.查询中常见的 等于 大于 小于 大于等于 小于等于 等于 : 在Mon ...

  3. mongodb 学习笔记 2 --- 修改器

    修改器是为了爱update文档时,不需要传入整个文档就能修改当前文档的某个属性值,修改器用法如下: 假设数据库中foo集合中存在如下文档:{"name":"jack&qu ...

  4. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  5. mongodb修改器

    mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...

  6. MongoDB-比较符及修改器

    数学比较符 $lt 小于 $lte 小于等于 $gt 大于 $gte 大于等于 $eq 等于 $ne 不等于 所有数据 > db.stutent.find() }) { "_id&qu ...

  7. Mongodb添加副本及修改优先级

    Mongodb添加副本及修改优先级 1.添加副本集 #在primary节点上执行 >rs.add( { host: "192.168.1.11:27017", priorit ...

  8. mongodb的修改器

    在mongodb中通常文档只会有一部分要更新,利用原子的更新修改器,可以做到只更新文档的一部分键值,而且更新极为高效,更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整.增加.或者删除键,还可以 ...

  9. [转载]MongoDB的$inc修改器

    MongoDB的$inc修改器相当于编程语言中的 “+=”“$inc”只能用于操作数值类型的数据,包括整数.长整数和双精度浮点数,用于其他类型的数据会导致操作失败. >db.users.find ...

随机推荐

  1. C#并口热敏小票打印机打印位图包括芯片的写入

    下面是打印所需要调用的代码: class LptControl { private string LptStr = "lpt1"; public LptControl(string ...

  2. JEECG 3.7.3 新春版本发布,企业级JAVA快速开发平台

    JEECG 3.7.3新春版本发布 -  微云快速开发平台 导读           ⊙精美Echart报表 ⊙二维码生成功能 ⊙Online接口改造采用JWT机制 ⊙智能菜单搜索 ⊙代码生成器模板优 ...

  3. 子类中的成员函数覆盖父类(name hiding)

    只要子类中出现了和父类中同名的函数,父类中的所有这个名字的函数,就被屏蔽了. 静态函数成员也是如此?经过代码验证,确实如此. #include <iostream> using names ...

  4. 尚硅谷springboot学习16-slf4j的使用

    如何在系统中使用SLF4j 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法: 给系统里面导入slf4j的jar和 logback的实现jar impor ...

  5. Dictionary,hashtable, stl:map有什么异同?

    相同点:字典和map都是泛型,而hashtable不是泛型. 不同点:三者算法都不相同 Hashtable,看名字能想到,它是采用传统的哈希算法:探测散列算法,而字典则采用的是散列拉链算法,效率较高, ...

  6. zookeeper和dubbo的关系

    Dubbo建议使用Zookeeper作为服务的注册中心. 1.   Zookeeper的作用:         zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知 ...

  7. $event Object angularjs

    You can pass the $event object as an argument when calling the function. The $event object contains ...

  8. 二维码API接口

    1.http://pan.baidu.com/share/qrcode?w=150&h=150&url=http://www.54admin.net 2.http://b.bshare ...

  9. vue项目bug-Couldn’t find preset "es2015"

    在使用vue项目的时候安装了其他的插件,发现会报错 Couldn’t find preset "es2015".是因引用的插件使用了es标准,解决办法如下 npm install ...

  10. checkbox中jQuery对数组和对象的操作

    ------------------------------------------------------------------------------------------ 来段小例子,jQu ...