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

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

     等于:在MongoDB中,什么字段等于什么值就是" : ",比如 "name":"路飞学城"、

    大于:在MongoDB中 大于号,我们用:$gt  比如 :  "score" : { $gt : 80 } 就是 得到 "score" 大于 80 的数据

    大于等于 : 在MongoDB中的 大于等于 >= 号 我们用 : $gte  比如 :  "score" : { $gte : 80 } 就是 得到 "score" 大于等于 80 的数据

    小于 : 在MongoDB中的 小于 < 号 我们用 : $lt  比如 :  "score" : { $lt : 80 } 就是 得到 "score" 小于 80 的数据

    小于等于 : 在MongoDB中的 小于等于 <= 号 我们用 : $lte  比如 :  "score" : { $lte : 80 } 就是 得到 "score" 小于等于 80 的数据

    二.MongoDB中的那些个update修改器: $inc $set $unset $push $pull

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

    还是刚才Collection数据,我们来试一下$inc , 让不及格的 "路飞学城2" 变成 60 分

    成功了 , {$inc:{"score":1}}的意思是,"score"的原有数值上面 +1,那我们再来实验一次,把60改为20,这怎么操作呢,其实可以理解为在 60 上加一个 -40

    2.$set : 此前我们已经提到过 $set 的用法和特性(没有就自动添加一条)了

    再做一个例子:把 "score" 为 100 分 的 "english_name" 赋值为 "LuffyCity"

    再把 "score" 为 20 分的 "score" 赋值为 59 分

    完美~

    3.$unset : 用来删除key(field)的

    做一个小例子 : 刚才我们有一个新的"english_name" 这个field ,现在我们来删除它

    成功了! {$unset:{"english_name" : 1}} 就是删除 "english_name" 这个 field 相当于 关系型数据库中删除了 字段

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

    做一个小例子 :首先我们要先对原有数据增加一个Array类型的field:

    使用update $set 的方法只能为Document中的第一条添加

    使用updateMany $set 的方法 可以为所有满足条件的 Document 添加 "test_list" , 注意我这里的条件为空 " {} " 就算是为空,也要写上"{}" 记住记住记住

    接下来我们就要队列表进行添加了: 将 "score" 为 100 的Document 中"test_list" 添加一个 6

    $push 是在 Array(list) 的尾端加入一个新的元素  {$push : {"test_list" : 6}}

    5.$pull : 有了$push 对Array类型进行增加,就一定有办法对其内部进行删减,$pull 就是指定删除Array中的某一个元素

    做一个例子: 把我们刚才$push进去的 6 删除掉

    问题来了,如果 Array 数据类型中 如果有 多个 6 怎么办呢?

    全部删掉了.....

    得出了一个结论,只要满足条件,就会将Array中所有满足条件的数据全部清除掉

    6. $pop : 指定删除Array中的第一个 或 最后一个 元素

    做个小例子: 删除"score" 等于 100 分  test_list 的最后一个元素

    怎么删除第一个呢?

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

  • 相关阅读:
    weak_ptr解决shared_ptr环状引用所引起的内存泄漏[转]
    如何限制对象只能建立在堆上或者栈上(转载)
    为了异常安全(swap,share_ptr)——Effecive C++
    注意类型转换——Effective C++
    http协议
    【java.math.BigInteger】常用函数
    【java.math.BigInteger】【转】常见问题
    【思路,dp,BigInteger】ZOJ
    【Warshall_Floyd】
    【Dijkstra】
  • 原文地址:https://www.cnblogs.com/wqzn/p/10278217.html
Copyright © 2011-2022 走看看