Mongodb使用总结

学习Mongodb已经有半年多了,为啥学习它,工作需要啊。好了,废话不说,总结在实际项目应用中的几点问题。

 

学习总结

首先,mongodb基本上既照顾到了sql某些语法,又有nosql的许多优点。入门简单,上手快,所以很多人开始探索nosql及云计算时,基本上都是从mongodb开始。但有几点需要注意:

1、mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。

2、mongodb的优势不是在于他能很快进行排序和检索,而是他支持一些nosql的特性,比如,高可用性,面向文档,支持子文档,文档内数组,松散的文档结构定义(这个使用的时候要注意哦,特别是某些字段不是必须的时候)等许多特性。当你像利用他来代替常规数据库以提高排序性能或者复杂检索时,你会死的很惨。

3、Mongodb自带的学习资料(MongoDB-manual-master.pdf)很重要,基本上所有的问题,都能在上面找到答案,而且文档很丰富。因此学习起来比较轻松,但是文档大部分是英语,如果英语有困难,那就无能为力了。不过里面的英语也很简单。

4、其Java API基本上没有文档,如何怎么使用JAVA API呢?这个其实用的多了,基本上也不用看client API了,mongodb里面操作的都是json。json也可以理解成java中的map,key就是你要执行的操作,比如你想set一个列的值,key就是$set,value可能是一个字符串,也可能还是一个json。mongodb的BasicDBObject就是一个继承自map的类。

 

 

 

使用经验

1、Mongodb在内存够用的时候,性能特别高,但是当你的数据超过内存限制时,性能急剧下降(通常会下降10倍)。如果你使用mongodb,一定要配尽量大的内存,足以保留你业务的热数据。

2、Mongodb跟mysql一样,对于常用的查询条件,该建索引的建索引。不要认为内存够用,数据就会在内存,有时,内存够用,数据也不一定在内存。不知道mongodb怎么处理这些数据的。

3、一定要使用副本集,一个主库,进行更新等操作,一个replicaset,用于检索查询。如果使用一个实例的话,更新等操作会锁定整个库,从而影响到查询检索的速度。项目中经过测试,有副本集的库,速度要比没有副本的库快至少5倍。

4、Mongodb对两个及以上的数组列,不能建立复合索引。也就是说,一个复合索引中,不能包含两列都是数组的列。

 

由于个人对mongodb的使用时间较短,使用的特性有限,总结难免出现差错,欢迎大家拍砖。

 

 

 

 

 

 

 

 

 

对这类话题感兴趣?欢迎发送邮件至 donlianli@126.com
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问  我的空间
高光谱成像技术作为遥感科学中的一项前沿手段,通过获取连续且密集的光谱波段信息,为环境科学、精准农业、医学影像及地质勘探等众多学科领域提供了关键的数据支持。本文档聚焦于高动态范围(HDR)格式的高光谱图像数据集,系统阐述在MATLAB平台下进行数据读取与处理的具体方法。高光谱数据通常涵盖数百至上千个窄波段,每个波段对应特定的光谱区间,从而能够精细刻画目标物体的光谱特性。HDR格式进一步扩展了图像的动态范围,使其能够在复杂光照条件下准确记录从低亮度到高亮度的细微变化,这对于分析光照不均对比度强烈的场景尤为重要。在MATLAB环境中处理高光谱数据,首要步骤是正确读取HDR文件。由于MATLAB内置的图像读取函数可能无法直接支持该格式,用户常需借助自定义脚本调用专门的工具箱函数。成功读取后,数据通常组织为一个三维数组,其中前两维分别表示图像的行与列(空间维度),第三维则对应各光谱波段。随后,为有效展示数据内容,需进行一系列预处理操作,例如辐射定标、光谱平滑维度压缩。MATLAB提供了多种可视化工具,包括用于单波段显示的`imshow`函数、用于多波段伪彩色合成的`imagesc`函数,以及高光谱工具箱中的`hypercube`对象,后者支持以交互方式浏览不同波段构成的图像立方体。进一步的数据分析常涉及光谱分类、异常检测特征提取等任务。用户可运用聚类方法(如K均值算法)对像元进行分组,采用支持向量机、随机森林等监督学习模型实现地物识别。MATLAB的统计与机器学习工具箱集成了这些算法的成熟实现。同时,数据质量优化亦不可忽视,可通过中值滤波、小波去噪等技术抑制噪声,借助主成分分析最小噪声分离等特征变换方法实现数据降维,从而保留最具判别性的光谱信息。为评估模型性能,可采用交叉验证、绘制混淆矩阵计算分类精度指标,MATLAB亦为此类验证流程提供了完备的函数支持。本资料包所附的HDR高光谱数据集及相关MATLAB示例代码,旨在引导用户逐步掌握高光谱数据的完整处理链路,包括数据导入、预处理、可视化、分析与验证等环节。通过实际演练,使用者将能够充分利用MATLAB的计算与图形能力,深入挖掘高光谱图像所蕴含的丰富光谱与空间信息,进而为各专业领域的决策与研究提供科学依据。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值