Mongodb $关键字 $修改器

MongoDB $关键字

在前两章中我们已经了解了简单的增删改查了

但是MongoDB中类似这样的关键字有很多, $lt $gt $lte $gte 等等,

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

MongoDB $数字关键字

等于

:    在MongoDB中什么字段等于什么值其实就是 " : " 来搞定    比如 "name" : "lin"

$eq  和上边查询结果是一样的

 

大于和大于等于

 大于    在MongoDB中的 大于 > 号 我们用 : $gt   比如  

大于等于    在MongoDB中的 大于等于 >= 号 我们用 : $gte

 

小于和小于等于

 小于    在MongoDB中的 小于 < 号 我们用 : $lt 

小于等于  在MongoDB中的 小于等于 <= 号 我们用 : $lte

 

这就是MongoDB中的运算符,是不是很类似我们使用的ORM中的运算符,是的。MongoDB的操作就是很类似ORM的

更新使用关键字

所有age小于20岁的修改为30了

 

MongoDB $查询关键字

$or   

查询条件中什么或者什么条件时候

db.collection.find({$or:[{"name":"cai"},{"name":"lin"}]}) 

查询   name   是  "cai"  和  "lin"  的数据

$in   

查询   "age" 满足 在[28,29,30]中的数据

db.table1.find({"age":{$in:[28,29,30]}})    # 满足一个条件即可

$all     

查询数据中   hobby 满足 所有列表的数据

 db.table1.find({hobby:{$all:[1,2,3,4]}})    #子集查询

 

MongoDB $修改器

update修改器: $inc $set $unset $push $pull

在此前的update中,我们用过$set,对数据进行过更新,其实在update中还存在很多的$关键字,我们把update中的这些关键字叫做 修改器

修改器很多,这里挑一些重要的来说一说:

 

1.$inc

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

还是刚才Collection数据,我们来试一下$inc , 让   lin 的   age  增加5岁

 

第一个 lin  的 age 成功的加上5

我想然他们 age  统一减少5呢?

 

2.$set

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

 把 age是30的数据修改  name 为 ming

3.$unset

 用来删除Key(field)的

查找  age 是30 的 数据  并且 删除 age 字段

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

4.$push

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

例子

创建table3

所有数据都添加一个test_lsit列表

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

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

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

 

5.$pull

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

 接下来我们就要队列表进行添加了: 将 "name" 为 2 的Document 中"test_list" 删除一个 4

问题来了,如果 Array 数据类型中 如果有 多个 4会怎么样?      会全部删掉!

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

6.$pop

做个小例子: 删除"name" 等于 3  test_list 的最后一个元素

 

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

是不是和大python中的列表的pop操作一样呢

 

posted @ 2018-12-24 21:38  洛丶丶丶  阅读(1848)  评论(0编辑  收藏  举报