数组运算|学习笔记

简介: 快速学习数组运算

开发者学堂课程【快速掌握 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() ;

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

相关文章
|
人工智能 自然语言处理 搜索推荐
阿里云百炼产品月刊【2025年2月】
本期⽉刊主要亮点包括推出全新多模态理解生成大模型通义千问Omni系列,支持文本、图像、语音和视频输入,提供流式输出和四种自然对话音色,新增高性价比图生视频模型wanx2.1-i2v-turbo,生成速度快,耗时仅为旧模型的三分之一。此外,qwen-plus采购季资源包上线,享受8.6折优惠;qwen-max模型降价88%,极大降低使用门槛。智能体应用和工作流应用现支持DeepSeek系列模型,增强私有知识库问答和任务型、对话型工作流构建能力。文件交互和批量节点功能进一步提升应用灵活性和实用性。本月还推出了AI实训营和应用开发实训营,提供手把手AI课程和企业级多模态应用构建指导。
1114 0
|
Go
如何在Go中进行文件操作以及如何使用协程来实现并发编程
如何在Go中进行文件操作以及如何使用协程来实现并发编程
171 2
|
缓存 监控 Java
Spring Boot应用的性能监控与优化
Spring Boot应用的性能监控与优化
|
10月前
|
人工智能 监控 数据可视化
提升开发效率:看板方法的全面解析
随着软件开发复杂度提升,并行开发模式下面临资源分配不均、信息传递延迟及缺乏全局视图等瓶颈问题。看板工具通过任务状态实时可视化、流量效率监控和任务依赖管理,帮助团队直观展示和解决这些瓶颈。未来,结合AI预测和自动化优化,看板工具将更高效地支持并行开发,成为驱动协作与创新的核心支柱。
|
弹性计算 安全 Linux
esc使用体验心得
在我看来云服务器有以下优点:省力,不需要专门花时间去维护服务器的硬件,看服务器是否运行正常;稳定,这应该是最主要的有点;安全,做web开发最怕的当然是攻击,所以选择大厂的服务器,自然是最香的;省钱,这当然也是很重要的,尤其对于我们学生用户还是很友好的,爆赞!
|
安全 大数据 调度
助力绿色低碳 阿里巴巴与华北电力大学数据中心算力-电力协同调度项目多项成果发布
助力绿色低碳 阿里巴巴与华北电力大学数据中心算力-电力协同调度项目多项成果发布
助力绿色低碳 阿里巴巴与华北电力大学数据中心算力-电力协同调度项目多项成果发布
|
分布式数据库 Hbase
|
存储 网络协议 安全
使用WebSocket实现实时多人答题对战游戏
在本文中,我将介绍如何使用WebSocket向实时多人答题对战游戏提供服务端,并详细介绍通接口的设计。
1141 0
|
前端开发 Java 关系型数据库
基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】
基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】
476 0
基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】
|
设计模式 存储 缓存
详解Java设计模式之单例模式(Singleton Pattern)
详解Java设计模式之单例模式(Singleton Pattern)
376 0
详解Java设计模式之单例模式(Singleton Pattern)
下一篇
开通oss服务