MongoDB深度学习之旅:从基础到高级

版权申诉
0 下载量 76 浏览量 更新于2024-08-04 收藏 137KB TXT 举报
"MongoDB是最流行的NoSQL数据库之一,以其高性能、高可用性和灵活的数据模型而受到广泛应用。以下是对MongoDB各个关键知识点的详细解析。 MongoDB:1. Database MongoDB是一个基于分布式文件存储的数据库,其数据存储在数据库中。每个数据库都有一个唯一的名称,并且可以包含多个集合(等同于传统关系数据库中的表)。创建一个新的数据库可以通过在MongoDB shell中使用`use`命令来完成,如果数据库不存在,MongoDB会自动创建。 MongoDB:2. Basic Usage MongoDB使用JSON格式的文档(BSON)来存储数据,这种格式支持嵌套结构。基本操作包括插入文档(`insertOne`或`insertMany`)、查询文档(`find`)、更新文档(`updateOne`或`updateMany`)和删除文档(`deleteOne`或`deleteMany`)。 MongoDB:3. Schema Design 在MongoDB中,模式设计是灵活的,允许快速适应变化的需求。然而,尽管没有严格的表格结构,良好的模式设计依然至关重要,可以帮助优化查询性能和数据一致性。例如,使用合适的索引、避免过多的嵌套和保持文档大小适中都是有效的设计原则。 MongoDB:4. Index 索引是提升查询效率的关键,MongoDB支持单字段、多字段和唯一性索引。`createIndex`命令用于创建索引,`db.collection.explain()`则可以用来分析查询性能,评估索引的效果。 MongoDB:5. Admin MongoDB提供了丰富的管理工具,如监控、备份、恢复和复制集管理。`db.stats()`可以查看数据库统计信息,`rs.status()`用于检查复制集状态,`mongodump`和`mongorestore`用于数据备份和恢复。 MongoDB:6. Optimization 优化主要包括调整硬件配置、使用合适的索引、控制文档大小以及合理设计查询。`explain()`方法用于分析查询计划,帮助识别潜在的性能瓶颈。 MongoDB:7. Replication (1&2) 复制集是MongoDB高可用性的核心特性,它通过在多个节点之间同步数据实现冗余和故障转移。复制集由一个主节点和多个从节点组成,当主节点故障时,从节点可以接管服务。 MongoDB:8. Sharding (1&2) 分片用于水平扩展MongoDB,通过将数据分散到多个机器上,处理大数据量。分片需要配置服务器(shard)、路由进程(mongos)和配置服务器(config server)。 MongoDB:9. GridFS GridFS是MongoDB内置的文件存储系统,用于存储和检索大型文件。它将文件拆分为多个小块存储在不同的文档中,以适应MongoDB的文档存储模型。 MongoDB:10. MapReduce MapReduce是一种处理和生成大量数据的编程模型,MongoDB提供了内置的MapReduce功能,支持用户定义的映射函数和归约函数,进行批量数据处理和分析。 MongoDB的shell是一个交互式的JavaScript环境,用于与MongoDB服务器通信。通过执行JavaScript代码,用户可以直接操作数据库,执行查询,管理用户,以及进行其他数据库管理任务。在命令行中,可以使用`./mongo`命令启动shell,配合各种选项如`--host`、`--port`和`--username`、`--password`进行连接和认证。" 这些知识点涵盖了MongoDB的基础到高级特性,为全面理解和使用MongoDB提供了坚实的基础。

项目突然跑不起来报这个错 Exception in monitor thread while connecting to server 10.18.21.79:27117 com.mongodb.MongoSocketReadException: Exception receiving message at com.mongodb.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:536) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:421) at com.mongodb.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:290) at com.mongodb.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255) at com.mongodb.connection.CommandHelper.sendAndReceive(CommandHelper.java:84) at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:34) at com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:91) at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:51) at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at com.mongodb.connection.SocketStream.read(SocketStream.java:84) at com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:547) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:418)

2023-06-09 上传

com.mongodb.MongoSocketOpenException: Exception opening socket at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.6.1.jar:na] at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:180) ~[mongodb-driver-core-4.6.1.jar:na] at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:193) ~[mongodb-driver-core-4.6.1.jar:na] at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:157) ~[mongodb-driver-core-4.6.1.jar:na] at java.lang.Thread.run(Thread.java:750) [na:1.8.0_371] Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_371] at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) ~[na:1.8.0_371] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) ~[na:1.8.0_371] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) ~[na:1.8.0_371] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) ~[na:1.8.0_371] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) ~[na:1.8.0_371] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) ~[na:1.8.0_371] at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_371] at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:107) ~[mongodb-driver-core-4.6.1.jar:na] at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-4.6.1.jar:na] at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-4.6.1.jar:na] ... 4 common frames omitted

2023-06-02 上传