MongoDB:NoSQL数据库详解与优缺点分析

需积分: 22 2 下载量 18 浏览量 更新于2024-07-09 收藏 2.13MB PDF 举报
MongoDB简介与应用 MongoDB是一款流行的开源文档型数据库管理系统,它的官方文档可以从 <https://docs.mongodb.com/> 获取,特别适合于3.4版本的中文文档参考,如复制和分片管理等内容。MongoDB的核心特性在于其灵活性,它允许用户以JSON-like的BSON(二进制JSON)格式存储数据,这种格式使得数据文档具有高度的自适应性和松散的模式,无需预先定义固定的模式(schema)。 MongoDB的优势主要体现在以下几个方面: 1. **易用性**:由于文档的数据结构接近于常见的编程语言对象,如JavaScript对象,开发者能够快速地映射数据库中的数据到程序中,简化了模型设计的过程。 2. **性能优化**:通过嵌入文档和数组,MongoDB降低了JOIN操作的需求,数据通常集中在单一文档中,减少数据冗余和查询复杂性。这有助于提高查询效率。 3. **动态扩展**:MongoDB支持动态schema,这意味着开发人员可以在对象创建后随时添加新字段,无需进行复杂的表结构调整,实现了灵活的多态性。 4. **高效更新**:当应用需求发生变化时,MongoDB可以无缝地处理数据更新,避免了ALTER_TABLE这样的开销,节省了时间和资源。 在数据格式方面,MongoDB使用轻量级的JSON(JavaScript Object Notation)作为基础,例如一个简单的文档可能如下所示: ```json { "name": "zhang", "age": "22", "sex": "male", "hobby": ["h1", "h2", "h3"] } ``` 这种格式允许包含字符串、数字、数组等多种数据类型,提供了丰富的查询选项,支持诸如聚合管道(aggregation pipeline)等高级查询功能,使得在处理非结构化或半结构化数据时表现出色。 然而,MongoDB也存在一些挑战,比如垂直扩展相对有限,对于大量写入操作和复杂事务的支持不如关系型数据库,以及对数据一致性要求较高的应用场景可能需要额外的解决方案。理解并权衡这些优缺点,可以帮助数据库管理员在实际项目中做出合适的选择。

为什么会这样[user_mongo@nosql01 replicaset]$ cd /opt [user_mongo@nosql01 opt]$ ll total 0 drwxr-xr-x. 3 root root 25 Mar 16 17:08 servers drwxr-xr-x. 2 root root 51 Mar 16 17:10 software [user_mongo@nosql01 opt]$ tar -zxvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/MPL-2 tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/MPL-2: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/README tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/README: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos: Cannot open: No such file or directory tar: Exiting with failure status due to previous errors [user_mongo@nosql01 opt]$ tar -zcvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ tar: Cowardly refusing to create an empty archive Try `tar --help' or `tar --usage' for more information.

2023-06-01 上传