数组运算|学习笔记

简介: 快速学习数组运算

开发者学堂课程【快速掌握 MongoDB 数据库数组运算】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/400/detail/5200


数组运算

 

首先在 mongoDB 里面是支持数组保存的,一旦支持了数组保存, 就需要针对于数组的数据进行匹配。

范例:保存一部分数组内容

db.students.insert( i "name":"谷大神-A"."sex":"男

" ,"age":19,"score":89,"address"

"course":["语文","数学","英语","音乐","政治"]}) ;

db.students.insert( i "name":"谷大神-B" "sex":"男

" ,"age":19,"score":89,"address"

"course":["语文""数学"]}) ;

d.students.insert( {"name"∵"谷大神-C" "sex":"男

" ,"age":19,"score":89,"address"

"course":["语文""数学","英语"]}) ;

db.students .insert("name":"谷大神-D".,"sex":"男

","age":19,"score":89,"address'

"course" :["英语","音乐","政治"]}) ;

db.students.insert( i "name":"谷大神–E" ,"sex":"男" ,"

age":19,"score":89,"address"

"course":["语文""政治"]});

此时的数据包含有数组内容,而后需要针对于数组数据进行判断,可以使用几个运算符:

$a11、$size、$slice、$elemMatch

范例:查询|同时参加语文和数学课程的学生。

现在两个数组内容都需要保存,所以使用“{"$all",[内容1,内容2...]}”

db.students.find( {"course" : {"$all":["语文","数学"]}}).pretty() :

现在所有显示的学生信息里面包含语文和数学的内容,而如果差一个内容的不会显示。

结果:

"_id": objectId("5594b0a2eecd74894d19fffb"),

"name": 谷大神- c",

"sex” :“男…,

"age"" : 19,

"score" : 89,、

"address":“海淀区”,

"course": [

“语文",“数学",“英语"

虽然“Sall”计算可以用于数组上,但是也可以用于一个数据的匹配上。

范例:查询学生地址是“海淀区”。

db.students.find({ "address" : {"$all":["海淀区"}}).pretty( )

既然在集合里面现在保存的是数组信息,那么数组就可以利用索引操作,使用“key index”的方式来定义索引。

范例:查询数组中第二个内容( index = 1,索引下标从0开始)为数学的信息

db.students.find({"course.1":"数学"}).pretty() ;

范例:要求查询出只参加两门课程的学生,

·使用“$size”来进行数量的控制。

db.students.find( {"course" : {"$size": 2}}).pretty();

发现在进行数据查询的时候只要是内容复合条件,数组的内容就全部显示出来了,但是现在希望可以控制数组的返回的数量,那么可以使用“$slice”进行控制。

范例:返回年龄为19 岁所有学生的信息,但是要求只显示两门参加课程.

db.students.find( { "age" : 19} , {"course" : {"$slice" : 2}}).pretty

) ;

结果:

_id" : ObjectId( "5594b0a2eecd74894d19fffc")

"name" : 谷大神- D”,

"sex” :“男,

age"": 19,

score": 8s,

address"":海淀区”,

course"":[

“英语",“音乐"

现在只取得了前两门的信息,那么也可以设置负数表示取出后两门的信息。

db.students.find( { "age" : 19} , { "course" : {"Sslice" : -

2}}).pretty();

或者只是取出中间部分的信息。

db.students.find( { "age" : 19} , {"course" : {"$slice" :

[1,1]}}).pretty() ;

在此时设置的两个数据里面第一个数据表示跳过的数据量,而第二个数据表示返回的数量。

相关文章
|
5月前
|
C语言
【汇编语言实战】两个32位数的相加运算
【汇编语言实战】两个32位数的相加运算
43 2
|
5月前
|
Python
数组运算
【5月更文挑战第6天】数组运算。
37 1
|
5月前
|
机器学习/深度学习 存储 算法
位运算是一种什么运算方式
位运算是一种什么运算方式
37 1
|
5月前
|
算法 前端开发
数组归约运算
数组归约运算
34 0
|
10月前
集合的运算
集合的运算
61 1
第3章 数组与矩阵——3.1 数组运算(2)
第3章 数组与矩阵——3.1 数组运算(2)
第3章 数组与矩阵——3.1 数组运算(1)
第3章 数组与矩阵——3.1 数组运算(1)
|
人工智能 算法
数组形式的整数加法
数组形式的整数加法
88 0
|
Python
LeetCode 989. 数组形式的整数加法
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。
98 0
|
PHP 开发者
比较运算| 学习笔记
快速学习比较运算。
150 0
比较运算| 学习笔记