开发者学堂课程【快速掌握 MongoDB 数据库:关系运算】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/400/detail/5196
关系运算
在 MongoDB 里面支持的关系查询操作:
大于($gt)、小于($lt)、大于等于(>e)、小于等于(<e)、不等于($ne)、等于( key:value)。
但是要想让这些操作可以正常使用,那么需要准备出一个数据集合。
由于本次操作要增加大量的数据所以:
范例:定义一个学生信息集合
db.students.drop
()
;
db.students.insert( { "name"
:"张三","sex"."男
" ,"age":19,"score":89," address"
:“海淀区“
db.students.insert( { "name"∵
"李四" ,"sex":"女
","age":20,"score":59 ,"address";
:朝阳区“
db.students.insert({ "name":
"王五";,"sex":"女
" ,"age":19,"score":99 ,"address":
:西城区“
db.students.insert({"name":
"赵六","sex":"男
" ,"age":20,"score":100,"addres
“
:“东城区”
db.students.insert( { "name":"
孙七","sex":"男" ,
"age":19,"score":20,"address":
“海淀区“
db.students.insert( { "name"∵
"王八","sex":"女
" ,"age":21,"score":0,"address"
:"海淀区“
db.students.insert( { "name"∵
"刘九","sex":"男
" ,"age":19,"score":70,"address":
“朝阳区“
db.students.insert( { "name"∵
"钱十";"sex":"女
" ,"age":21,"score":56,"address";
“
西城区“
这时,输入:
D
b
.studens.find().pretty()
执行:
”
_id”: objectId(5594ab1eeecd74894d19fff7") ,
"name"
:王八”,
“
sex":
“女",
"age""
: 21 ,
“
score”
: 0,
"address”
:"海淀区"
"_id": objectId("5594ab1eeecd74894d19fff8"),
"name"
: "刘九",
"sex
“
:“男,
“
age""
: 19,
"score"
:70,.
"address”
:“朝阳区
"_id": objectId(5594ab1feecd74894d19fff9"") ,
"name"
:“钱十”,
"sex""
:“女”,
“
age""
: 21,
"score”
: 56,.
"address""
:“西城区
数据输入进去了,之后查询:
范例:查询姓名是张三的学生信息
db.students.find( {"name":"张三"}).pretty
()
;
在所有的关系操作之中,只有相等的判断这样写,其他的判断都是嵌套 js 结构。
执行:
"_id": objectId(5594ab1eeecd74894d19fff2"") ,
"name"
:张三”,
“
sex"
:"男,
"age""
: 19,
“
score"
: 89 .
"address”
: 海淀区“
张三的信息就出来了,或者:
范例:查询性别是男的学生信息。
db .students.find( i"sex":"男"}).pretty
()
;
结果:
"_id" : objectId("5594ab1eeecd74894d19fff6""),
"name”
:孙七”,
sex..
:男
’age"
: 19,
"score"
: 20,..
"address"
:"海淀区
"_id": objectId("5594ab1eeecd74894d19fff8""),
"name""
:刘九,
sex""
:男”,
"age""
: 19,
score"
: r0,
address"
:“朝阳区”
男生都出来了
范例:查询年龄大于19岁的学生。
大于是($gt)但是之前为止都是按照传统的思路去编写JSON 结构,但是, mongo 之中它支持的叫 bs。
db.students.find( "age": {"$gt":19}}).pretty
()
;
//设置条件的时候一定要再加一个 JSON 括号。
结果:
"_id": objectId("5594ab1eeecd74894d19fff5""),
"name”"
:赵六”,
"sex"
:“男”,
"age""
: 20,
score"
: 10o,
"address"
:“东城区"
"_id" : objectId("5594ab1eeecd74894d19fff7"") ,
"name"
:“王八”,
sex”
:“女",
"age""
: 21 ,
score"
:0
“
address""
:"海淀区“
都大于19
范例:查询成绩大于等于60分的学生,
db.students.find( 'iscore": {"$gte":60} }).pretty
()
;
执行:
"_id”: objectId( "5594ab1eeecd74894d19fff5""),
"name"
:"赵六”,
"sex""
:“男”,
"age"
: 20,
"score”
: 100,.
eaddress
“东城区
"_id" : objectId("5594ab1eeecd74894d19fff8""),
"name"
:刘九,
"sex”"
:“男,
"age""
: 19,
score""
: 70,
address"
:“朝阳区"
现在只能设置一个的操作信息。
范例:查询姓名不是王五的信息
db.students.find( { "name": { "$ne"
:"王五"}}).prettyO ;
执行:
" _id: objectId( "5594ab1eeecd74894d19fff2"),
"name"
:“张三”,
“
sex""
:男”,
“
age"
: 19
""score”
:80,
"address""
:“海淀区"
"_id”: objectId( "5594ab1eeecd74894d19fff3""),
"name"
:李四",
"se×”
:“女",
“
age"”"
: 20 ,
"score"
: 59,
address""
:“朝|阳区"
没有出现王五。
此时与之前最大的区别就在于,在一个JSON结构里面需要定义其它的 JSON 结构,并且这种风格在日后通过程序进行操作的时候依然如此。