- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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
文档评论(0)