- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MongoDB 中使用分组、聚合和映射-归并
一、【实验目的】
1. 掌握在MongoDB 中查询文档操作。
2. 掌握在MongoDB 中查找操作匹配的文档数、限制返回的文档数、数据集分页,查找数据
集中特定字段的不同值。
3. 掌握在MongoDB 中使用分组、聚合和映射-归并框架来操作一系列文档的方法。
二、【实验原理】
1. 查询
a. Find
1)指定返回的键
db.persons.find({},{})
//第一个{}指定条件
//第二个{}指定需要返回的列
//其中id 列默认情况下会返回 _id:0 为不返回 name:1 为返回那么列
b. 分页和排序
1)分页
前几条数据 ————limit()
db.persons.find().limit(5) --查询前5 条数据
前跨度数据 —————skip()
db.persons.find().limit(3).skip(5) --前6~8 共三条 前面5 条省略跳过
2 )排序 ————sort()
db.persons.find().limit(3).sort({name:1}) --前三行数据根据name 升序排序 -1 为倒序
db.persons.find().limit(3).sort({name:1,age:-1}) --先升序再倒序
c. 游标
var p = db.persons.find(); --得到游标
while(p.hasNext()){ --遍历游标
obj = p.next(); --指向下一条记录
print(obj)
}
2. 常用函数
a. findAndModify 函数————返回集合
b. runCommand 函数————返回更新或者删除的文档
示例:
ps = db.runCommand({
findAndModify:persons,
query:{name:test},
update:{$set:{age:11}},
new:true
}).value
--findAndModify 集合名
--query 查询器
--update 修改器
--new 状态--如果true 表示返回结果是更新后的,false 为更新前
--sort 排序
c.Count 函数————计数
db.persons.find({country:USA}).count() --查询美国国籍的人数
d.Distinct 函数————去重
db.runCommand({distinct:persons,keycountry}).values
--查询persons 集合中一共有多少个国家,分别是什么。
e.Group 函数————分组
db.runCommand({
group:{
ns:集合名字,
Key:分组的键对象,
Initial:初始化累加器,
$reduce:组分解器,
Condition:条件,
Finalize:组完成器
}
})
说明:分组首先会按照key 进行分区,每组的每个文档全部要执行$reduce 的方法,其中参
数为:一个是组内本条记录,一个是累加器数据。
示例:请查出persons 中每个国家学生数学成绩最好的学生信息(必须在90 以上) 。
db.runCommand({
group:{
ns:persons,
key:{country:true},
initial:{m:0},
$reduce:function(doc,prev){
if(doc.m prev.m){
prev.m = doc.m;
prev.name = doc.name;
prev.country = doc.country;
}
},
condition:{m:{$gt:90}}
}
})
3. aggregate 聚合操作
MongoDB 的聚合操作,接受一个名为pipeline 的参数和一个可选参数。pipeline 可以理
解为流水线,一条流水线上可以有一个或多个工序。所以,mongodb
您可能关注的文档
最近下载
- 02S701 砖砌化粪池建筑工程图集 .docx VIP
- 旅游度假区目标客户群分析.docx VIP
- TCBDA 27-2019 建筑装饰装修机电末端综合布置技术规程.pdf VIP
- 《飞机构造基础》课件——第九章 飞机防火系统.pptx VIP
- 中信泰富:2008年年度报告.pdf
- 《飞机构造基础》课件——第二章 重量与平衡.pptx VIP
- 医院绩效考核分配方案及实施细则.pdf VIP
- 旅游市场的目标客户群分析与定位.docx VIP
- D-Z-T 0204-2022 矿产地质勘查规范 稀土(正式版).docx VIP
- 2025初中七年级数学下册《相交线与平行线》大单元整体教学设计.docx
文档评论(0)