MongoDB实验——在MongoDB集合中查找文档

这篇具有很好参考价值的文章主要介绍了MongoDB实验——在MongoDB集合中查找文档。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的

1.掌握在 MongoDB中查询文档操作

2.掌握查找单个文档、多个文档、使用查询运算符根据字段值查找文档,根据子文档查找文档的方法

二、实验原理

MongoDB 支持多种复杂的查询方式,能实现大多数 T-SQL 功能,远不是 Key-Value 之类的 NoSQL DB 所能比拟的。

Conditional Operator : $lt <, $lte <=, $gt >, $gte >=

Conditional Operator : $ne //不等于

Conditional Operator : $in //属于

Conditional Operator : $nin //不属于

Conditional Operator : $mod //取模运算

Conditional Operator : $all //全部属于

Conditional Operator : $size //数量

Conditional Operator : $exists //字段存在

Conditional Operator : $or // 或

Regular Expressions //正则表达式

Value in an Array // 数组中的值

Conditional Operator : $elemMatch //要素符合

Meta operator: $not //不是

Conditional Operators : $slice //切片

Javascript Expressions and $where //

sort() //排序

limit() //限制取数据条数

skip() //跳过一定数值开始取

count() // 数量

group() //分组

三、实验步骤

1.启动MongoDB数据库、启动MongoDB Shell客户端

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

2.数据准备–>person.json

2.1切换到 xscj 数据库,Shell 端执行以下脚本:实现在 xscj 数据库中,添加 persons 集合,并增加11条学生信息。

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

2.2查询persons集合中的所有文档信息

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

2.3查询persons集合中的所有文档信息(规整查找结果的格式)——节选一部分

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

3.指定返回的键

格式为:db.[documentName].find({条件},{键指定})

3.1查询出所有学生的name、age和country信息

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

3.2查询出年龄在 25 到 27 岁之间的学生姓名。

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

3.3查询出所有不是韩国籍的学生的数学成绩,结果显示姓名和数学成绩。

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

4 .包含或不包含 i n 或 in 或 in或nin、$elemMatch(匹配数组)

4.1查询国籍是中国或美国的学生信息

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

4.2查询国籍不是中国或美国的学生信息

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

4.3查询出满足数组中指定条件的文档

步骤一:在当前数据库中添加数据到 scores 集合中{_id: 1, results: [82,85,88] },{ _id: 2, results: [75,88,89]}

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

步骤二:查询 89<=results<95 的文档

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

5.OR 查询 $or

查询语文成绩大于 85 或者英语大于 90 的学生信息,结果显示学生姓名,语文成绩和英语成绩。

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

6.Null、$exists

  1. 1把中国国籍的学生上增加新的键 sex

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

6.2查询出sex等于null的学生

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

6.3查询集合中包含sex键的文档

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

6.4查询集合中不包含sex键的文档

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

7.正则查询 $regex

正则表达式对象:{ <field>: /pattern/<options> };

$regex 为模糊查询的字符串提供正则表达式功能。

7.1查询出名字中存在”li”的学生的信息

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

7.2分析以下查询实现的操作,在当前数据库 xs 集合中录入实例数据检验其功能。

`> db.xs.find({name:{$in:[/^joe/i,/^jack/}})

`> db.xs.find({name:{$regex:/^zh/i, $nin:["zhang"]}})

`> db.xs.find({email:{$regex:/@qq./,$options:"i"}})

```> db.xs.find({name:{$regex:/^zh/}})`

`> db.xs.find({name:{$regex:/c/}})

8.$not 的使用

$not 可以用到任何地方进行取反操作。

查询出名字中不存在”li”的学生的信息。

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

n o t 和 not 和 notnin 的区别是 n o t 可以用在任何地方,而 not 可以用在任何地方,而 not可以用在任何地方,而nin 用到集合上。

9.数组查询$all 和 index 应用

9.1查询喜欢看MONGODB和JS的学生

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

9.2 查询第二本书是 JAVA 的学习信息

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

10.查询指定长度数组$size,它不能与比较查询符一起使用

查询出喜欢的书籍数量是 4 本的学生

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

11.查询出喜欢的书籍数量大于 4 本的学生

  1. 1增加字段 size

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

11.2改变书籍的更新方式,每次增加书籍的时候 size 增加 1

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

11.3利用$gt 查询: 喜欢的书籍数量大于4 本的学生

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

12.利用shell查询出Jim喜欢看的书的数量

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

13.在当前数据库 persons1 集合中中添加以下文档信息:

{ _id:1,

members:[{name:“BuleRiver1”,age:27,gender:“M”},

{name:“BuleRiver2”, age:23, gender:“F”},

{name:“BuleRiver3”, age:21, gender:“M”}]

}

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

查看数据是否正确存储到数据库?

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

查询是否存在 name 为"BuleRiver1"并且 age 为 27 的成员。使用多种方式尝试查询:(分 析哪种查询可以得到正确结果)

> db.persons1.find({members:{name:“BuleRiver1”}}) //数组元素中的键值一部分

> db.persons1.find({members:{age:27,name:“BuleRiver1”,gender:“M”}})

//把键值颠倒

> db.persons1.find({members:{name:“BuleRiver1”,age:27,gender:“M”}})

//完全匹配数组中的键值

> db.persons1.find({“members.name”:“BuleRiver1”})

> db.persons1.find({“members.name”:“BuleRiver1”,“members.age”:27})

//数组第 1 个元素的键值完全一致

> db.persons1.find({“members.name”:“BuleRiver1”,“members.age”:23})

//数组第 1、2 个元素的部分键值的组合

使用$elemMatch 操作符查询

> db.persons1.find({members:{$elemMatch:{name:“BuleRiver1”,age:27}}})

//$elemMatch+同一个元素中的键值组合

> db.persons1.find({members:{$elemMatch:{name:“BuleRiver1”,age:23}}})

//$elemMatch+不同元素中的键值组合

14.$slice 操作符返回文档中指定数组的内部值

14.1查询出Jim书架中第2~4本书

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

14.2查询出最后一本书,注意查询结果同时显示姓名和图书

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

14.3$slice 值设置为 2 或-2,分析查询结果

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

15.嵌套文档查询

为 zhangsan 添加学习简历文档 zhangsanschoool.json。

文档内容:

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

15.1查询出在 school1 上过学的且成绩为“A”学生

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

15.2查询出在 school1 上过学的且成绩为“B”学生

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

15.3查询年龄大于 22 岁,喜欢看 C++书,在 school1 学校上过学的学生信息

db.persons.find( 
{"school.school":“school1",“books":{$in:[“C++”],”age”:{$gt:22}},{_id:0,name:1}}) 

16.分页和排序

16.1分页 前几条数据limit()

查询persons中的前5条数据

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

16.2前跨度数据——skip()

查询persons中的前6~8共三条数据,即前面5条省略跳过

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

16.3排序——sort()

查询 persons 集合中的前三行数据,只显示姓名和年龄,根据 name 升序排序,-1 为倒序

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

17.游标

查询学生集合中的所有文档

> var p = db.persons.find(); //得到游标

> while(p.hasNext()){ //遍历游标

> obj = p.next(); //指向下一条记录

> print(obj); //输出

>}

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

18.Count函数——计数

查询美国国籍的人数

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

19.Distinct函数——去重

查询 persons 集合中一共有多少个国家,分别是什么

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

20.嵌套文档查询

查询在“school1”学校上过学的学生

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库

注意:通过”.”连接集合 baseinf 和字段,并用双引号实现指定嵌套文档的查询

查询在“school1”学校上过学且成绩为”A”的学生,查询结果只显示学生姓名

MongoDB实验——在MongoDB集合中查找文档,MongoDB,mongodb,数据库文章来源地址https://www.toymoban.com/news/detail-687603.html

到了这里,关于MongoDB实验——在MongoDB集合中查找文档的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MongoDB-数据库文档操作(1)

    任务描述 文档数据在 MongoDB 中的插入和更新。 相关知识 本文将向大家介绍文档数据在 MongoDB 中的基本操作。 文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。BSON 是一种类 JSON 的一种二进制形式的存储格式,简称: Binary JSON 。 本文将教你掌握:

    2024年01月17日
    浏览(34)
  • MongoDB-数据库文档操作(2)

    任务描述 文档数据在 MongoDB 中的查询和删除。 相关知识 本文将教你掌握: 查询文档命令; 删除文档命令。 查询文档 我们先插入文档到集合 stu1 : 然后查看 stu1 ,命令和结果如图1所示(因为我们没有设置 _id ,所以 MongoDB 会默认生成: 图 1 上述显示的文档格式不够整齐,

    2024年01月18日
    浏览(30)
  • 在Node.js中使用MongoDB连接数据库、创建集合

    本文主要介绍在Node.js中使用MongoDB连接数据库、创建集合的方法。 在Node.js中使用MongoDB连接数据库有两种方式:使用原生驱动程序和使用Mongoose。 首先,需要安装 mongodb 模块。可以通过以下命令来安装: 安装完成后,可以在代码中引入模块: 接着,可以使用 MongoClient 来连接

    2024年02月04日
    浏览(30)
  • 【文档数据库】ES和MongoDB的对比

    目录 1.由文档存储牵出的问题 2.什么是MongoDB? 3.ES和MongoDB的对比 本文或者说关于mongodb的这个系列文章的源头: 前面我们聊过了分布式链路追踪系统,在基于日志实现的分布式链路追踪的方式seluth+zipkin中为了防止数据丢失,需要将数据持久化。我们给出的是持久化进mysql中的

    2024年01月19日
    浏览(39)
  • java springboot整合Mongodb 对数据库集合进行增删查改操作

    下面 我们就来做 springboot 整合Mongodb的工作 我们终端打开 Mongodb 安装目录下的bin目录 然后执行 启动服务 然后 打开我们的 springboot 项目 在pom.xml 文件中 导入坐标 有了依赖之后 就还差配置 打开项目中的 application 配置文件 我这里用的 yml 格式 我们在上面 打个 mong 它就会弹出

    2024年01月18日
    浏览(43)
  • 数据库信息速递 MONGODB 6.0 的新特性,更多的查询函数,加密查询,与时序数据集合 (译)...

    开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到3群(共1000人左右 1 + 2 + 3),最近发展的速度比较快,2群除特殊情况,不在添加

    2024年02月16日
    浏览(36)
  • MongoDB文档-进阶使用-MongoDB索引-createindex()与dropindex()-在MongoDB中使用正则表达式来查找

     阿丹:         之前研究了MongoDB的基础增删改查。在学会基础的数据库增删改查肯定是不够的。这个时候就涉及到了数据库搜索的时候的效率。需要提高数据的搜索效率。         在所以数据库中如果没有数据索引的时候。如果需要查找到一些数据。都会去主动扫描所有

    2024年02月14日
    浏览(31)
  • MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)

    目录 一、MongoDB 1.1、简介 a)MongoDB 是什么?为什么要使用 MongoDB? b)应用场景 c)MongoDB 这么强大,是不是可以直接代替 MySQL ? d)MongoDB 中的一些概念 e)Docker 下载 1.2、库操作 tips看前须知 a)查看所有库 b)创建并使用数据库 c)查看当前操作的数据库 d)删除数据库 1.3、

    2024年01月17日
    浏览(28)
  • Mongodb 集合插入文档自动生成ObjectId

    Mongodb 使用以下几种方法来插入文档 , Mongodb V5.0+ 使用 mongosh 客户端: 插入单个文档 db.collection.insertOne() 将单个 文档插入到集合中。 如果该集合当前不存在,则插入操作将创建该集合。 如果文档未指定_id字段,则将在插入之前 mongod 添加该字段并为文档_id分配唯一的字段

    2024年02月12日
    浏览(35)
  • 整理mongodb文档:集合名字有类似-等特殊字符串如何处理?

    整理mongodb文档:集合名字有类似-等特殊字符串如何处理? 首先,先创建一个collection的名字为’collection-test’,这个表名中,colletion的名字有一个特殊字符串“-”,但是后面插入数据的时候会有这么一个错误返回 很多情况下,我们的表名会有类似-或则是/等这些特殊字符串,

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包