大数据——MongoDB数据库操作实例
大数据——四种数据库(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数据库操作实例相关推荐
- 大数据——MySQL数据库操作实例
大数据--四种数据库(MySQL,HBase,MongoDB,Redis)操作实例 问题描述: Student学生表 1. 根据上面给出的表格,利用MySQL5.7设计出student学生表格; a) ...
- 大数据——HBase数据库操作实例
大数据--四种数据库(MySQL,HBase,MongoDB,Redis)操作实例 问题描述: Student学生表 1. 根据上面给出的表格,用Hbase Shell模式设计student学生表格. ...
- .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...
ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...
- MongoDB数据库操作---mongoose操作
Mongoose认知概念 Mongoose是MongoDB的一个对象模型工具,其可以在一部环境下执行.同时它也是针对MongoDB操作的一个队形模型库,封装了MongoDB对文档的一些增删改查等常用方 ...
- 图解大数据 | 海量数据库查询-Hive与HBase详解
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 大数据之数据库mysql优化实战(一)
2019独角兽企业重金招聘Python工程师标准>>> :facepunch: 大数据之数据库mysql优化实战(一) 首先你要有数据,不然怎么测试,几百条就算了,还没跑就完了. 本 ...
- PHP操作mongodb数据库操作类
最近的项目开发中使用的数据库是mongodb数据库,因为小编的公司也是刚刚使用mongodb数据库,所以之前没有封装好的mongodb数据库操作类拿来使用,所以小编在项目中自己封装了一个mongodb ...
- MongoDB数据库操作---终端操作
初识MongoDB 概念: 特点 相关安装 我这边用的是MAC版本 在使用mongodb之前,我们需要给它配置一个macOS缺失的软件包管理器,叫做HomeBrew,链接是:HomeBrew 对应的, ...
- 大数据分布式数据库系统介绍
传统的关系模型分布式数据库难以适应大数据时代的要求,主要的原因有以下几点: (1)规模效应带来的压力.大数据时代的数据远远超出单机处理能力,分布式技术是必然的选择.传统的数据库倾向于采用纵向扩展的方式 ...
最新文章
- 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序
- 文本分类实战(七)—— Adversarial LSTM模型
- ajax路由器,注册ajax用户的步骤 _ 路由器设置|192.168.1.1|无线路由器设置|192.168.0.1 - 路饭网...
- 创建IT运维管理门户
- 在控制台读取用户输入密码,你会么?
- C语言中printf输出特殊字符(“%d“或者“\n“)
- struts 2 配置通配符
- JMail 应用实践(一)--- 简介用Java程序发送email
- python中a* b是什么意思_Python中的a+=b和a=a+b之间的区别是什么?
- 东芝宣布时域神经网络技术:要让低功率物联网设备也能深度学习
- Android 之类库常用包
- android studio 单元测试详解
- win10怎么查看计算机用户名和密码,技术员详解win10系统查看电脑密码的详细方案...
- 【IoT】产品设计:硬件成本核算,这篇文章就够了
- PS教程:清凉一下美女海报设计教程及素材
- 简单明了的告诉你什么是CPUID
- RAID容量在线计算器
- 无法访问此页面,确保web地址正确?
- 心电监护仪数据图解_心电监护仪原理和使用步骤详解
- 位运算的奇技淫巧:Bit Twiddling Hacks