大数据——四种数据库(MySQL,HBase,MongoDB,Redis)操作实例

问题描述:

student文档如下:

1. 根据上面给出的文档信息,用MongoDB模式设计student集合。

a) 设计完后,用find指令浏览集合的相关信息,给出截图。

b) 查询zhangsan 的Computer成绩,给出截图。

c) 修改lisi的Math成绩,改为95,给出截图。

2. 根据上面已经设计出的student集合,用MongoDB的JAVA客户端编程;

a) 添加数据:name: scofield,English:45 Math:89 Computer:100

b) 获取scofield的English成绩信息

问题解决:

1. 根据上面给出的文档信息,用MongoDB模式设计student集合。

设计集合代码:(复制粘贴代码时,要删除注释部分,下同)

hadoop@        -VirtualBox:~$ mongo//启动MongoDB

在>提示符下,分别键入如下语句:

> use Stu //数据库Stu被自动创建

> db.createCollection('student')//创建集合student

> show dbs//显示所有数据库

> use Stu

> var stus=[{"name":"zhangsan","scores":{"English":69,"Math":86,"Computer":77}},{"name":"lisi","score":{"English":55,"Math":100,"Computer":88}}]        //注意,这个是一整行

> db.student.insert(stus)//向集合中插入数据

对应的Linux终端运行截图:

a) 设计完后,用find指令浏览集合的相关信息,给出截图。

> db.student.find().pretty() //显示集合信息

对应的Linux终端运行截图:

b) 查询zhangsan 的Computer成绩,给出截图。

> db.student.find({"name":"zhangsan"},{"_id":0,"name":0})  //查询张三的成绩,不显示id和姓名

对应的Linux终端运行截图:

c) 修改lisi的Math成绩,改为95,给出截图。

> db.student.update({"name":"lisi"}, {"$set":{"score.Math":95}} )   //修改李四的数学成绩

对应的Linux终端运行截图:

2. 根据上面已经设计出的student集合,用MongoDB的JAVA客户端编程;

(1)按Ubuntu操作系统桌面左上角的搜索图标,搜索到Eclipse,点击打开

(2)新建一个Java Project,随便起一个工程名,点击完成

a) 添加数据:name: scofield,English:45 Math:89 Computer:100

(1)右键点击工程名,新建一个class,起名mongo_insert

(2)将如下代码粘贴至mongo_insert .java

import java.util.ArrayList;
import java.util.List;import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;public class mongo_insert {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//实例化一个mongo客户端MongoClient  mongoClient=new MongoClient("localhost",27017);//实例化一个mongo数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("Stu");//获取数据库中某个集合MongoCollection<Document> collection = mongoDatabase.getCollection("student");//实例化一个文档,内嵌一个子文档Document document=new Document("name","scofield").append("score", new Document("English",45).append("Math", 89).append("Computer", 100));List<Document> documents = new ArrayList<Document>();  documents.add(document);  //将文档插入集合中collection.insertMany(documents);  System.out.println("文档插入成功"); }
}

(3)将JDBC驱动mongo-java-driver-3.4.2.jar导入到工程中去,操作方法:工程名(右键)--buildpath--configure build path--add external jars(在Libraries栏目下),添加mongo-java-driver-3.4.2.jar(如果没有jar包,可下载:四种数据库(MySQL,HBase,Redis,MongoDB)的Java客户端所需jar包.zip-其它文档类资源-CSDN下载),点击确定。

(4)运行此mongo_insert .java,在Linux终端通过select语句查询名为scofield的学生记录是否已经被添加?

Java运行结果:

MongoDB检验结果:scofield的学生记录已经被添加

b) 获取scofield的English成绩信息

(1)为了获取scofield的English成绩信息,请将如下代码添加至新建的mongo_query.java文件中,调试运行,给出结果截图。

import java.util.ArrayList;
import java.util.List;import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import static com.mongodb.client.model.Filters.eq;
public class mongo_query {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//实例化一个mongo客户端MongoClient  mongoClient=new MongoClient("localhost",27017);//实例化一个mongo数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("Stu");//获取数据库中某个集合MongoCollection<Document> collection = mongoDatabase.getCollection("student");//进行数据查找,查询条件为name=scofield, 对获取的结果集只显示score这个域MongoCursor<Document>  cursor=collection.find( new Document("name","scofield")).projection(new Document("score",1).append("_id", 0)).iterator();while(cursor.hasNext())System.out.println(cursor.next().toJson());}
}

Java运行结果:

补充:因为我们使用的是Ubuntu16.04,其安装mongodb的方法会与Ubuntu14.04下安装mongodb的方法有些差异,如果你想在自己的机器的Ubuntu16.04上自己动手安装mongodb,请参考

How to Install MongoDB on Ubuntu 16.04 | DigitalOcean

大数据——MongoDB数据库操作实例相关推荐

  1. 大数据——MySQL数据库操作实例

    大数据--四种数据库(MySQL,HBase,MongoDB,Redis)操作实例 问题描述: Student学生表 1. 根据上面给出的表格,利用MySQL5.7设计出student学生表格; a) ...

  2. 大数据——HBase数据库操作实例

    大数据--四种数据库(MySQL,HBase,MongoDB,Redis)操作实例 问题描述: Student学生表 1. 根据上面给出的表格,用Hbase Shell模式设计student学生表格. ...

  3. .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...

    ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...

  4. MongoDB数据库操作---mongoose操作

    Mongoose认知概念 Mongoose是MongoDB的一个对象模型工具,其可以在一部环境下执行.同时它也是针对MongoDB操作的一个队形模型库,封装了MongoDB对文档的一些增删改查等常用方 ...

  5. 图解大数据 | 海量数据库查询-Hive与HBase详解

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. 大数据之数据库mysql优化实战(一)

    2019独角兽企业重金招聘Python工程师标准>>> :facepunch: 大数据之数据库mysql优化实战(一) 首先你要有数据,不然怎么测试,几百条就算了,还没跑就完了. 本 ...

  7. PHP操作mongodb数据库操作类

    最近的项目开发中使用的数据库是mongodb数据库,因为小编的公司也是刚刚使用mongodb数据库,所以之前没有封装好的mongodb数据库操作类拿来使用,所以小编在项目中自己封装了一个mongodb ...

  8. MongoDB数据库操作---终端操作

    初识MongoDB 概念: 特点 相关安装 我这边用的是MAC版本 在使用mongodb之前,我们需要给它配置一个macOS缺失的软件包管理器,叫做HomeBrew,链接是:HomeBrew 对应的, ...

  9. 大数据分布式数据库系统介绍

    传统的关系模型分布式数据库难以适应大数据时代的要求,主要的原因有以下几点: (1)规模效应带来的压力.大数据时代的数据远远超出单机处理能力,分布式技术是必然的选择.传统的数据库倾向于采用纵向扩展的方式 ...

最新文章

  1. 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序
  2. 文本分类实战(七)—— Adversarial LSTM模型
  3. ajax路由器,注册ajax用户的步骤 _ 路由器设置|192.168.1.1|无线路由器设置|192.168.0.1 - 路饭网...
  4. 创建IT运维管理门户
  5. 在控制台读取用户输入密码,你会么?
  6. C语言中printf输出特殊字符(“%d“或者“\n“)
  7. struts 2 配置通配符
  8. JMail 应用实践(一)--- 简介用Java程序发送email
  9. python中a* b是什么意思_Python中的a+=b和a=a+b之间的区别是什么?
  10. 东芝宣布时域神经网络技术:要让低功率物联网设备也能深度学习
  11. Android 之类库常用包
  12. android studio 单元测试详解
  13. win10怎么查看计算机用户名和密码,技术员详解win10系统查看电脑密码的详细方案...
  14. 【IoT】产品设计:硬件成本核算,这篇文章就够了
  15. PS教程:清凉一下美女海报设计教程及素材
  16. 简单明了的告诉你什么是CPUID
  17. RAID容量在线计算器
  18. 无法访问此页面,确保web地址正确?
  19. 心电监护仪数据图解_心电监护仪原理和使用步骤详解
  20. 位运算的奇技淫巧:Bit Twiddling Hacks

热门文章

  1. ARM——指令集仿真环境搭建
  2. Oracle 9i Data Guard举行数据库的灾祸防护
  3. JVM(八): 垃圾回收
  4. Python足球战术板源代码,过一把足球教练的瘾,足球战术分析工具
  5. 线性表文档之循环单链表
  6. 外国语言学及应用语言学类毕业论文文献有哪些?
  7. 外部系统连接SFDC,获取SFDC侧的数据
  8. 前端连接后端,获取到数据库数据,通过ECharts图标展现在页面上
  9. segfault rip rsp error
  10. ActiveMQ 原理分析—消息发送篇