千家信息网

MongoDB笔记(三)

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、MongoDB数据查询(1)MongoDB使用find函数来数据查询,其功能与SQL中的select函数相同,可以提供与关系型数据库类似的许多功能,包括映射、排序等。db.集合名.find(que
千家信息网最后更新 2026年10月31日MongoDB笔记(三)

一、MongoDB数据查询

(1)MongoDB使用find函数来数据查询,其功能与SQL中的select函数相同,可以提供与关系型数据库类似的许多功能,包括映射、排序等。

db.集合名.find(query,fields,limit,skip)

1.query相当于SQL中的where语句

2.fields用于字段映射,1的时候表示显示0是不显示,语法格式:{field:0}或{field:1}用时候要么全用0要么全用1,混合使用的话除了"_id":0 以外的混合用法是错误的。

3.limit 限制查询结果集的文档数量。

4.skip跳过一定数据量的结果,设置第一条返回文档的偏移量。

(2)MongoDB与注意事项

1.MongoDB不支持多集合间的连接查询,find函数一次查询只能针对一个集合。

2.find参数为空或者查询条件为空文档时,会返回集合中所以的文档。

3.除了将limit和skip作为find函数的参数外,还可以单独使用limit和skip函数来修饰查询结果。

例如:db.student.find({age:{$lt:22}}).limit(5).skip(10)

4.返回的查询结果集默认是无序的,如果需要对结果进行排序,可以使用sort函数。1表示升序-1为降序。

例如:db.student.find().sort({name:1,age:-1})

5.db.collection.findOne()只会返回第一条数据。

6.当查询的集合文档数量很大时,为了加快数据的查询速度可以创建索引。

7.除了使用find函数实现基本查询之外,MongoDB还提供了聚合框架,用于复杂查询。


二、查询操作符介绍及使用

(1)比较查询操作符

(2)逻辑查询操作符

逻辑查询操作符,可连接多个查询条件,用于逻辑与、或、非以及取反操作。

(3)元素操作符

元素查询操作符,用来查询文档中字段的属性,包括字段是否存在以及字段的数据类型。


三、MogoDB的游标

使用find函数进行查询时,MongoDB并不是一次返回结果集中的所有文档,而是分批次的返回结果,返回的数据量不会多余4M,默认情况下会返回结果集的101个文档或者1M的数据(看哪个条件先满足就用谁)。返回的文档会缓存到内存中,同时会有一个cursor游标指向该批结果集中的第一个,当游标遍历到完最后一个文档时,游标将自动向MongoDB数据库发送一个getMore数据请求得到下一批的结果集。

(1)使用游标时要注意下面几个问题。

1.当调用find函数时,shell并不立即查询数据库,而是等真正开始游标的hasNext使用时(获取结果时)才发送查询请求。

2.游标对象的每个方法几乎都返回游标对象本身,这样就可以方便的进行链式函数调用。

3.如果不将find函数返回的游标赋值给一个局部变量进行保存的话,默认情况下游标会自动迭代20次。想要手动迭代就必须赋值给一个局部变量,然后用提供的函数进行迭代。

(2)游标的生命周期(创建、使用以及销毁)

当客户端使用find函数向服务器端发起一次查询请求时,会在服务器端创建一个游标,然后就可以使用游标函数来操作查询结果。

下面三种情况会让游标销毁:

1.游标遍历完成后,或者客户端主动发送终止消息。

2.客户端保存的游标变量不在作用域内。

3.在服务器端10分钟内未对游标进行操作。

(3)游标快照

游标因为没有隔离性,所以游标可能会返回那些由于体积变大而被移动到集合末尾的文档。为解决这一问题的方法是对查询进行快照。其语法如下:

db.collection.find().snapshot()

使用快照后,查询就会在_id索引上来遍历执行,这样就可以保证每个文档只会被返回一次,从而保证获取结果的一致性。但快照会使得查询速度变慢,使用需谨慎。


四、findAndModify函数的使用

findAndModify与update函数的比较:

1.都以原子的方式来更新修改文档

2.当多个文档满足query条件时:

①findAndModify使用sort选项,对结果排序,选择第几个文档。

②update不能选择具体更新哪一个文档。

3.update可以一次修改多个文档,findAndModify不行。

4.update可以设置写的安全级别findAndModify不行。

查询 游标 文档 函数 结果 数据 操作符 字段 快照 条件 变量 多个 客户 客户端 情况 数据库 服务器 逻辑 排序 服务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高科技互联网 奇酷互联网科技 银优互联网科技有限公司 掌上梦互联网科技 互联网科技汛 互联网科技股午盘股票涨跌 太原新华互联网科技学校怎么样 玖二柒互联网科技公司待遇 常德市电业局互联网科技部 互联网科技公司实习生 深圳育鹏互联网科技有限公司招聘 华夏恒生互联网科技013171 群盈汇互联网科技有限公司 云南省自由互联网科技有限公司 领航科技大厦互联网公司 工业互联网科技创业 萌小萌互联网科技河南有限公司 数字科技和互联网金融哪个好 前海云享互联网科技 武汉亿视互联网科技有限公司 广州淘业互联网络科技 壹账通互联网科技 互联网科技上市公司 科技与互联网的利与弊 福州新华互联网科技学校 知乎 互联网行业科技股 恒生互联网科技业指数调整周期 科技互联网公司两年变化 绵阳真晨互联网科技有限公司 恒生互联网科技趋势
0