|
范例:查询姓名是张三的学生信息
范例:查询性别是男的学生信息
范例:查询年龄大于十九的学生
范例:查询成绩大于等于六十分的学生
范例:查询姓名不是王五的信息
此时与之前最大的区别就在于,在一个JSON结构里需要定义其他的JSON构,并且这种结构在日后用程序进行操作的时候依然如此。
2.1.3.2逻辑运算
逻辑运算主要就是三种类型:与($and),或($or),非($not $nor)
范例:查询年龄在19-20岁的学生信息
在进行逻辑运算的时候"and"的连接是最容易的,因为只需要利用","分割若干个条件就可以了。
范例:查询年龄不是19 岁到20岁的学生
里边仍有十九,原因在于没有注意否定的目标,木标并不是十九。而是一个集合。
这次否定的目标才对
范例:查询年龄大于19岁,或分数高于90分的学生信息
在这几个逻辑运算中与的连接最简单。而或的连接需要为数据设置数组的锅炉条件
2.1.3.3求模
模的运算使用"$mod"来完成,语法{"$mod":[数字,余数]}。
范例:求模
利用求模计算可以编写一些数学的计算公式
2.1.3.4范围查询
只要是数据库,就存在有"$in"(在范围之中),"$nin"(不在范围之中)。
范例:查询姓名是“张三”,“李四”,“王五”的信息
范例:不在范围内
在实际的工作中,范围的操作很重要。
2.1.3.5数组查询
首先,在MongoDB里面是支持数组保存的,一旦支持了数组的保存,就需要真对于数组的数据进行匹配
范例:保存一部分数组内容
此时的数据包含有数组内容,而后需要针对于数组数据进行判断,可以使用几个运算符:$all $size $slice $elemMatch
范例:查询同时参加数学和语文课程的学生
现在两个数组内容都需要保存,所以使用"{"$all",[内容1,内容2...]}"
虽然"$all"计算可以用于数组上,但是也可以用于一个数据的匹配上。
范例:查询地址为"海淀区"的信息
db.students.find({"address":{"$all":["海淀区"]}}).pretty()
既然在集合里面现在报存的是数组信息,那么数组就可以利用索引操作,使用"key.index"的方式来定义索引
范例:查询数组中第二个内容(index=1,索引下标从0开始)为数学的信息
范例:要求查询出只参加两门课程的学生
使用"$size"来进行数量的控制
发现在进行数据查询的时候只要是内容符合条件,数组的内容就全显示出来了,希望控制数组返回的数量,那么就可以使用"$slice"操作
范例:返回年龄为19岁的所有学生的信息,但只显示两门课程
db.students.find({"age":19},{"course":{"$slice":2}}).pretty()
现在只取得了前两门的信息,那么也可以设置负数表示取出后两门信息
db.students.find({"age":19},{"course":{"$slice":-2}}).pretty()
或者只是取出中间部分的信息
db.students.find({"age":19},{"course":{"$slice":[1,2]}}).pretty()
第一个数据表示跳过的数据量,第二个数据表示返回的数量
小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)
GMT+8, 2024-4-24 12:10
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.