irpas技术客

实验二MongoDB高级操作_@远山淡影

irpas 2946

MongoDB高级操作

实验目的:

会用MapReduce聚合运算统计数据

掌握文件系统和自动增长的设置方式

掌握MongoDB的安全和访问控制方法

use wds db.createCollection("dizhen") mongoimport -d wds -c dizhen E:\data\地震数据.txt

use wds db.dizhen.find()

3.定义map函数,把经度jd和纬度wd按5度划分区域

4.定义reduce函数,按划分区域统计数量

5.使用MapReduce函数,将统计的结果存放到一个新的集合dz中

var map=function(){ var wd =parseInt(this.wd/5)*5; var jd =parseInt(this.jd/5)*5; var area =wd+":"+jd; emit(area,1); } var reduce=function(area,num){ return Array.sum(num); } db.dizhen.mapReduce(map,reduce,{out:"dz"}); db.dz.find()

题目2:使用大文件存储规范GridFS存储文档

在D:\mongodb\data目录下创建一个文本文档qwer.txt

2.进入MongoDB安装目录bin下,找到mongofiles.exe,添加qwer文件

mongofiles -d gribfs put D:\mongoDB\data\qwer.txt db.fs.files.find() db.fs.chunks.find()

1.创建一个名字为”counters”的集合

2.插入文档{_id:“productid”,sequence_value:0}

3.创建函数getNextSequenceValue来作为序列名的输入,指定的序列会自动增长 1 ,并返回最新序列值

4.使用getNextSequenceValue函数创建一个新的文档,并设置文档_id自动为函数返回的序列值

5.执行命令“db.products.find()命令,验证自增长函数是否有效

db.createCollection("counters") db.counters.insertOne( {_id:"productid",sequence_value:0} ) function getNextSequenceValue(productid){ var sequenceDocument = db.counters.findAndModify( { query:{_id: productid }, update: {$inc:{sequence_value:1}}, new:true }); return sequenceDocument.sequence_value; } db.products.insert({ "_id":getNextSequenceValue("productid"), "product_name":"AppleiPhone", "category":"mobiles"}) db.products.insert({ "_id":getNextSequenceValue("productid"), "product_name":"SamsungS3", "category":"mobiles"}) db.products.find()

题目4:使用用户认证的方式登录MongoDB

1.进入admin数据库

2.添加一个具有管理员权限的用户admin,添加一个普通用户tester

roles:[ { role: "userAdminAnyDatabase", db: "admin" } ]

3.用show users()命令或者db.system.users.find()命令查看用户

4.使用db.auth()命令完成用户认证

5.修改admin/tester用户的密码

6.删除admin/tester用户

use admin db.createUser( { user: "wds", pwd: "cww", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) db.createUser( { user:"mongoTester", pwd:"orgle123", roles:[{role:"readWrite",db:"test"}, {role:"read",db:"goodMongodb"}] } ) show users 或者 db.system.users.find() db.auth("wds","cww") db.changeUserPassword("wds","admin123") db.dropUser("admin")


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #实验二MongoDB高级操作 #D #wds #C #dizhen #Edata地震数据txtuse