网站开发的可行性报告,大连市网站制作电话,做网站建设科技公司,工程项目管理软件排名在MongoDB集合中查找文档 一、实验目的二、实验原理三、实验步骤1.启动MongoDB数据库、启动MongoDB Shell客户端2.数据准备--person.json3.指定返回的键4 .包含或不包含 i n 或 in 或 in或nin、$elemMatch#xff08;匹配数组#xff09;5.OR 查询 $or6.Null、$exists7.… 在MongoDB集合中查找文档 一、实验目的二、实验原理三、实验步骤1.启动MongoDB数据库、启动MongoDB Shell客户端2.数据准备--person.json3.指定返回的键4 .包含或不包含 i n 或 in 或 in或nin、$elemMatch匹配数组5.OR 查询 $or6.Null、$exists7.正则查询 $regex8.$not 的使用9.数组查询$all 和 index 应用10.查询指定长度数组$size它不能与比较查询符一起使用11.查询出喜欢的书籍数量大于 4 本的学生12.利用shell查询出Jim喜欢看的书的数量13.在当前数据库 persons1 集合中中添加以下文档信息14.$slice 操作符返回文档中指定数组的内部值15.嵌套文档查询16.分页和排序17.游标18.Count函数——计数19.Distinct函数——去重20.嵌套文档查询 一、实验目的
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客户端 2.数据准备–person.json
2.1切换到 xscj 数据库Shell 端执行以下脚本实现在 xscj 数据库中添加 persons 集合,并增加11条学生信息。 2.2查询persons集合中的所有文档信息 2.3查询persons集合中的所有文档信息规整查找结果的格式——节选一部分 3.指定返回的键
格式为db.[documentName].find({条件},{键指定})
3.1查询出所有学生的name、age和country信息 3.2查询出年龄在 25 到 27 岁之间的学生姓名。 3.3查询出所有不是韩国籍的学生的数学成绩,结果显示姓名和数学成绩。 4 .包含或不包含 i n 或 in 或 in或nin、$elemMatch匹配数组
4.1查询国籍是中国或美国的学生信息 4.2查询国籍不是中国或美国的学生信息 4.3查询出满足数组中指定条件的文档
步骤一在当前数据库中添加数据到 scores 集合中{_id: 1, results: [82,85,88] },{ _id: 2, results: [75,88,89]} 步骤二查询 89results95 的文档 5.OR 查询 $or
查询语文成绩大于 85 或者英语大于 90 的学生信息结果显示学生姓名语文成绩和英语成绩。 6.Null、$exists
1把中国国籍的学生上增加新的键 sex 6.2查询出sex等于null的学生 6.3查询集合中包含sex键的文档 6.4查询集合中不包含sex键的文档 7.正则查询 $regex
正则表达式对象{ field: /pattern/options }
$regex 为模糊查询的字符串提供正则表达式功能。
7.1查询出名字中存在”li”的学生的信息 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”的学生的信息。 n o t 和 not 和 not和nin 的区别是 n o t 可以用在任何地方而 not 可以用在任何地方而 not可以用在任何地方而nin 用到集合上。
9.数组查询$all 和 index 应用
9.1查询喜欢看MONGODB和JS的学生 9.2 查询第二本书是 JAVA 的学习信息 10.查询指定长度数组$size它不能与比较查询符一起使用
查询出喜欢的书籍数量是 4 本的学生 11.查询出喜欢的书籍数量大于 4 本的学生
1增加字段 size 11.2改变书籍的更新方式,每次增加书籍的时候 size 增加 1 11.3利用$gt 查询: 喜欢的书籍数量大于4 本的学生 12.利用shell查询出Jim喜欢看的书的数量 13.在当前数据库 persons1 集合中中添加以下文档信息
{ _id:1,
members:[{name:“BuleRiver1”,age:27,gender:“M”},
{name:“BuleRiver2”, age:23, gender:“F”},
{name:“BuleRiver3”, age:21, gender:“M”}]
} 查看数据是否正确存储到数据库 查询是否存在 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本书 14.2查询出最后一本书注意查询结果同时显示姓名和图书 14.3$slice 值设置为 2 或-2分析查询结果 15.嵌套文档查询
为 zhangsan 添加学习简历文档 zhangsanschoool.json。
文档内容 15.1查询出在 school1 上过学的且成绩为“A”学生 15.2查询出在 school1 上过学的且成绩为“B”学生 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条数据 16.2前跨度数据——skip
查询persons中的前6~8共三条数据即前面5条省略跳过 16.3排序——sort
查询 persons 集合中的前三行数据只显示姓名和年龄根据 name 升序排序-1 为倒序 17.游标
查询学生集合中的所有文档 var p db.persons.find(); //得到游标 while(p.hasNext()){ //遍历游标 obj p.next(); //指向下一条记录 print(obj); //输出
} 18.Count函数——计数
查询美国国籍的人数 19.Distinct函数——去重
查询 persons 集合中一共有多少个国家分别是什么 20.嵌套文档查询
查询在“school1”学校上过学的学生 注意通过”.”连接集合 baseinf 和字段并用双引号实现指定嵌套文档的查询
查询在“school1”学校上过学且成绩为”A”的学生查询结果只显示学生姓名