zoukankan      html  css  js  c++  java
  • MongoDB之$关键字及$修改器$set $inc $push $pull $pop

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

    等于:用':'

    大于:用'$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  根据资源文档的排序获取最后一个文档数据
    

      

  • 相关阅读:
    字符流中第一个不重复的字符 python实现
    当当网爬虫
    第六周---事后分析
    第四周的菜鸡互啄
    菜鸡互啄队——软件需求规格说明书
    菜鸡互啄队—— 团队合作
    Hadoop综合大作业
    分布式文件系统HDFS 练习
    安装Hadoop
    爬取全部的校园新闻
  • 原文地址:https://www.cnblogs.com/wjs521/p/10180141.html
Copyright © 2011-2022 走看看