MongoDB入门指南:非关系型数据库与CRUD操作详解

需积分: 18 13 下载量 188 浏览量 更新于2024-07-16 收藏 861KB DOCX 举报
MongoDB笔记提供了深入的指南,介绍了一种流行的NoSQL数据库——MongoDB。首先,MongoDB以其灵活的文档数据模型区别于关系型数据库,它的数据结构类似于JSON,由数据库(Database)、集合(Collection)和文档(Document)组成,允许动态添加字段,增强了数据存储的灵活性。 在关系型概念中,MongoDB支持多种关系模型: 1. 一对一关系:文档之间通过嵌套的对象实现,每个文档中的对象可以与另一个文档紧密关联。 2. 一对多关系:类似于传统数据库中的外键,通过ID关联多个文档,如商品与订单的关系。 3. 多对多关系:MongoDB借助中间表(实际上并不直接支持,但可以通过聚合查询或单独的集合来间接实现)来处理,比如老师与学生之间的关系。 在实际操作中,笔记详细讲解了如何创建数据库(如`mongodb_test`),以及如何执行CRUD操作。CRUD包括: - 查询:使用`find()`方法查找文档,可以通过指定属性和值进行筛选,`findOne()`则用于获取第一个匹配的文档,`count()`统计文档数量。默认排序是基于 `_id` 的。 - 排序与投影查询:`sort()`函数用于指定查询结果的排序方式,而`projection`可以控制返回文档包含哪些字段。 此外,笔记还提到了Mongoose,一个Node.js的MongoDB对象模型工具,简化了与MongoDB的交互。Mongoose提供连接数据库、定义数据模式(Schema)、创建Model(集合的封装)等功能,以及更高级的操作,如查询、插入、修改和删除文档。通过Mongoose,开发者可以方便地进行数据操作,并且利用其强大的类型系统和验证规则来确保数据的准确性和一致性。 总结来说,这份笔记覆盖了MongoDB的基础架构、数据模型、关系映射以及在Node.js环境中使用Mongoose进行高效开发的关键操作。对于想要深入了解和学习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 上传