学习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的使用时间较短,使用的特性有限,总结难免出现差错,欢迎大家拍砖。
相关推荐
MongoDB学习总结入门篇.pdf MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。下面将对MongoDB的基本概念、特点、使用原理和基本操作进行详细介绍。 1. MongoDB基本...
这个库允许开发者通过使用注解和基于Java的配置来处理MongoDB的操作。以下是对标题和描述中提到的知识点的详细说明: 1. **@Document** 注解:在Java实体类上使用`@Document`注解表示该类将映射到MongoDB的一个集合...
Java 中 MongoDB 使用环境详细配置 Java 中 MongoDB 使用环境详细配置是指在 Windows 平台(WinXP)上安装、运行、安装 Windows 服务的笔记,以作备忘。下面是一些重要的知识点: 1. MongoDB 的下载和安装 ...
MongoDB 使用BSON(Binary JSON)格式存储数据,这是一种类似JSON的二进制表示,支持更丰富的数据类型,如日期、整数、双精度浮点数和二进制数据。文档是MongoDB中的基本数据单元,类似于JSON对象。 2. 集合与...
总结来说,MongoDB的基础操作涵盖了数据库的基本管理、数据的增删改查,而副本集和分片则是其在高可用性和可扩展性方面的核心特性。通过深入理解和熟练掌握这些知识,可以有效地利用MongoDB处理大规模的分布式数据...
10. **GROUP函数**:"关于MongoDB的group用法.docx"将介绍如何使用GROUP进行数据分组和聚合,这是数据分析和统计中的关键操作。 通过深入学习这些文档,你可以获得全面的MongoDB知识,从基础到高级,从理论到实践,...
总结来说,Spring Data MongoDB通过`MongoDBTemplate`简化了MongoDB的集成和操作,使得开发者能够专注于业务逻辑而不是底层数据库交互。对于初学者,这是一个很好的起点,可以快速上手MongoDB和Spring Data的使用。
本实验报告旨在详细介绍 MongoDB 的安装、配置和基本操作步骤,本报告基于 CentOS 7 系统,通过一步一步的截图和文字说明,帮助读者快速掌握 MongoDB 的使用。 一、安装 MongoDB 首先,我们需要配置 MongoDB 的 ...
### Windows 下 MongoDB 安装与使用详解 #### 一、MongoDB 简介 MongoDB 是一种基于分布式文件存储的开源数据库系统。它属于 NoSQL 数据库的一种,使用 BSON(Binary JSON)格式来存储数据,支持动态模式,使得开发...
总结,MongoDB是一款强大的NoSQL数据库,适用于处理大规模、结构多变的数据。了解并掌握MongoDB的安装、使用和管理技巧,是成为高效数据处理专家的重要一步。在学习过程中,参考“mongoDB安装及使用指南”这份资料,...
MongoDB 是一种流行的NoSQL数据库系统,以C++语言编写并开源。NoSQL数据库与传统的关系型数据库(RDBMS)不同,它不依赖于固定的表格模式,这使得NoSQL...因此,选择是否使用MongoDB应根据具体业务需求和技术栈来决定。
总结来说,这个示例提供了使用Java、Spark、MongoDB、Spring和Maven实现数据操作的基础步骤。它涵盖了从设置环境、构建项目、连接数据库到执行CRUD操作的全过程,对于学习和实践中处理大数据与NoSQL数据库的集成非常...
**标题:“Morphia和MongoDB学习总结<三>”** 在本文中,我们将深入探讨Morphia,一个用于Java的MongoDB对象数据映射(ODM)库,以及它如何与MongoDB数据库进行交互。Morphia简化了在MongoDB中存储和检索Java对象的...
总结,MongoDB 是一个功能强大的 NoSQL 数据库,其易于安装、管理用户权限和数据操作的特性使其成为许多企业的首选。通过理解并熟练掌握这些基础知识,可以有效地利用 MongoDB 构建高效、可扩展的应用程序。
通过阅读这份"MongoDB总结"文件,学习者将能够掌握MongoDB的基本概念、操作以及在实际项目中的应用,为进一步学习和使用MongoDB打下坚实基础。利用Markdown格式,内容易于阅读和理解,结合Typora等编辑器,学习体验...
总结来说,MongoDB是一个功能强大的文档型数据库,适用于各种现代应用场景。了解并掌握其安装、使用和基本语法是开发过程中不可或缺的技能。通过阅读和实践本手册,你将能够熟练地运用MongoDB进行数据存储和处理。
总结,MongoDB在京东的使用充分体现了其作为现代NoSQL数据库的优势,不仅能满足电商平台的高并发、大数据需求,还能提供灵活的数据模型和强大的数据分析能力,助力京东提升用户体验和服务质量。通过不断优化和创新,...
- MongoDB使用类似SQL的查询语法,如`find()`用于查找文档,`update()`用于更新文档,`remove()`用于删除文档。 - 查询条件可以基于字段值,也可以使用正则表达式、范围查询等复杂条件。 - MongoDB还支持聚合操作...