MongoDB基于scala语言的简单探索
来源:互联网 发布:sql好学吗 编辑:程序博客网 时间:2024/06/05 17:24
MongoDB基于scala语言的简单探索
一、什么是mongodb
mongodb是一种典型的NoSql类型的数据库,相比于传统的关系型数据库,其最大的优势是存贮单元是文档(document),即:不存在二维表的结构,存贮方式比较自由,也可以简单的理解为:**将类似于json结构的数据存在了一个文档中**,官方一点的话是: mongodb是一个使用C++编写的开源,跨平台,面向文档的数据库 这样来看,mongodb里面基本的容器是database,相当于hive中的database,在每一个database下,通常会有多个集合(collection),每个集合下面通常会有多个文档,这些文档相当于oracle中的table,当时不同点在于文档是具有动态变化结构,并且同一集合下的相同字段是可以具有不同类型的值的
二、怎么连接mongodb
1、下载mongodb的相关包,包括(driver、core)
maven私服地址:"https://mvnrepository.com/"使用你自己项目的项目构建工具下载相应的jar包,例如我的是gradle工程,就引入下面的包,但是请注意=》如果是scala语言的话,请引入cashah_2.11这个包
compile 'org.mongodb:mongo-java-driver:3.5.0'compile 'org.mongodb:casbah_2.11:3.1.1'
刷新完你的依赖包以后,就可以开始下面的探索之旅了
2、建立mongodb的连接,类似的一个查询程序
object MongodbUtil { //mongodb的ip地址 val url = "0.0.0.0" //修改成你自己的mongodb的ip地址 //mongodb的端口,一般采用默认端口 val port = 27017 //要获取的数据库的名字 val databaseName = "vehicle_feature" //申明一个客户端连接 val database = MongoClient(url, port) //获取指定的库 val mongoClient = database.getDB(databaseName) //选取指定的文档 //批量获取mongodb中的文档,其中queryCondition是条件数组,注意查询时,优化查询方式的方法其实和oracle是一样的,尽可能的利用连接池或者建立尽可能少的连接 def findMuti(queryCondition: Array[String], startTime: String, endTime: String): JSONArray = { val result = new JSONArray() val connect = mongoClient.getCollection("daily_features") println(connect.find().count()) result.add(connect.find(MongoDBObject("_id.tid" -> MongoDBObject("$in" -> queryCondition),"_id.time" -> MongoDBObject("$gte"->new SimpleDateFormat("yyyy-MM-dd").parse(startTime), "$lte" -> new SimpleDateFormat("yyyy-MM-dd").parse(endTime)))).toArray) database.close() result }
3、写在最后
上面的程序是基于scala_2.11的编译环境 实际在查询时,并不需要返回文档中所有的字段信息,这时可以在MongoDBObject中添加projection,用于返回指定的字段,例如MongoDBObject("_id"->0,"key"->1)
阅读全文
1 0
- MongoDB基于scala语言的简单探索
- 基于 C 语言的 JavaScript 引擎探索
- Scala基于Akka的Remote Actor实现的简单RPC
- [转]基于 C 语言的 JavaScript 引擎探索
- mongodb 的 scala 驱动 -> casbah
- Scala简单的例子
- mongodb 探索
- Scala语言中基于Actor的并发编程的机制初步
- [机器学习]基于spark框架的scala语言MAC环境的安装
- [机器学习]基于spark框架的scala语言MAC环境的安装
- 基于Spark和SparkSQL的NetFlow流量的初步分析——scala语言
- play+mongodb+scala的项目搭建
- MongoDB的地理位置搜索GeoSearch使用方法探索
- 基于IntelliJ IDEA开发Spark的Maven项目——Scala语言
- 基于IntelliJ IDEA开发Spark的Maven项目——Scala语言
- 基于IntelliJ IDEA开发Spark的Maven项目——Scala语言
- IntelliJ IDEA构建基于maven的spark+hbase工程(scala语言)
- 【scala】【spark】基于随机梯度下降的简单线性回归编程实现:Linear Regression - SGD
- 程序人生:干货 | 程序员必须知道的十大基础实用算法及其讲解
- 2017.11.6 第十四次总结
- 走穿java23种设计模式-9组合模式
- 基于哈夫曼树的数据压缩算法
- 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配
- MongoDB基于scala语言的简单探索
- Android面试摘录二
- 纪念碑谷附录五(迷失瀑布)
- LightOJ 1348 Aladdin and the Return Journey(树链剖分)
- 纪念碑谷附录六(幻像城堡)
- 纪念碑谷附录七(密牢)
- Sed命令n,N,d,D,p,P,h,H,g,G,x解析
- Reactor3 响应式编程方式 spring5 已近支持
- opencv学习笔记——数据结构与基本绘图