MongoDB数据库和吐槽微服务

MongoDB数据库和吐槽微服务

1 MongoDB的特点和体系结构

MongoDB:一个跨平台的,面向文档的数据库,nosql数据库。支持数据结构松散,是类似于JSON的BSON格式,因此可以存储比较复杂的数据类型
特点:
	1. 面向集合存储,易于存储对象类型的数据库
	2. 模式自由
	3. 支持动态查询
	4. 支持完全索引,包含内部对象
	5. 支持复制与故障恢复
	6. 使用高效的二进制数据存储,包含大型对应(如视频等)
	7. 自动处理碎片,支持云计算层次的扩展性
	8. 支持Python,PHP,Ruby,java,c,c#,javasript,Perl及c++语言的驱动程序
	9. 文件存储格式为BSON(一种JSON的扩展),
体系结构:
	 MongoDB 的逻辑结构是一种层次结构。主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。逻辑结构是面向用户的,用户使用 MongoDB 开发应用程序使用的就是逻辑结构。
		(1)MongoDB 的文档(document),相当于关系数据库中的一行记录。
		(2)多个文档组成一个集合(collection),相当于关系数据库的表。
		(3)多个集合(collection),逻辑上组织在一起,就是数据库(database)。
		(4)一个 MongoDB 实例支持多个数据库(database)
数据类型:
	null:用于表示空值或者不存在的字段,{“x”:null}
	布尔型:布尔类型有两个值true和false,{“x”:true}
	数值:shell默认使用64为浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,可以使用
	NumberInt(4字节符号整数)或NumberLong(8字节符号整数),
	{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}
	字符串:UTF-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”}
	日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()}
	正则表达式:查询时,使用正则表达式作为限定条件,语法与JavaScript的正则表达式相
	同,{“x”:/[abc]/}
	数组:数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]}
	内嵌文档:文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3 }}
	对象Id:对象id是一个12字节的字符串,是文档的唯一标识,{“x”: objectId() }
	二进制数据:二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要
	将非utf-字符保存到数据库中,二进制数据是唯一的方式。
	代码:查询和文档中可以包括任何JavaScript代码,{“x”:function(){/…/}}

2 MongoDB命令

基本命令:
	1. 创建目录:md d:\data
	2. 启动服务:MongoDB --dbpath=d:\data
	3. 制定端口:--port
	4. 退出mongodb:exit
语法:
	1. 创建数据库:use 数据库名称
	2. 插入和查询文档:db.集合名称.insert(数据)
	3. 查询集合:db.集合。find()
	4. 按条件查询:db.spit.find({userID:'1023'})
	5. 指定条件:db.spit.find().limit(3)
	6. 修改与删除文档:db.集合名称.update(条件,修改后的数据) db.集合名称.remove(条件)
	7. 统计条数:db.spit.count({userid:"1013"})
	8. 模糊查询:
		db.spit.find({content:/流量/})
		db.spit.find({content:/^加班/})
	9. 大于 小于 不等于 :
		db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
		db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value
		db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value
		db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
		db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value
	10. 包含于不包含:db.spit.find({userid:{$in:["1013","1014"]}})
	11. 条件连接:db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]})
	12. 列值增长:db.spit.update({_id:"2"},{$inc:{visits:1}} )
	13. 

3 运用Java操作MongoDB

SpringData家族成员之一,用于操作MongoDb的持久层框架,封装了底层的mongodbdriver。

4 使用SpringDataMongoDB完成吐槽微服务的开发

采用SpringDataMongoDB框架实现吐槽微服务的持久层
实现功能:
	1. 基本增删改查API
	2. 根据上级ID查询吐槽列表
	3. 吐槽点赞
	4. 发布吐槽
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值