实验二MongoDB高级 *** 作

实验二MongoDB高级 *** 作,第1张

实验二MongoDB高级 *** 作

MongoDB高级 *** 作

实验目的:

  1. 会用MapReduce聚合运算统计数据

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

  3. 掌握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存储文档

  1. 在D:mongodbdata目录下创建一个文本文档qwer.txt


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

mongofiles -d gribfs put D:mongoDBdataqwer.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")



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4967640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存