node.js - 了解 NoSQL 数据建模 - 博客应用程序

标签 node.js mongodb database nosql

我正在 Node.js + MongoDB 数据库中创建一个博客应用程序。我以前使用过 MySQL 等关系数据库,但这是我第一次体验 NoSQL 数据库。因此,在进一步行动之前,我想先确认我的 MongoDB 数据模型。

我决定我的 blogDB 有 3 个集合

  1. post_collection - 存储有关该文章的信息
  2. comment_collection - 存储有关文章评论的信息
  3. user_info_collection - 包含用户信息

PostDB

{
  _"id" : ObjectID(...),
  "author": "author_name",
  "Date": new Date(....),
  "tag" : ["politics" , "war"],
  "post_title": "My first Article",
  "post_content": "Big big article"
  "likes": 23
  "access": "public"
}

CommentDB

{
   "_id" : Objectid(...),
   "POST": "My First Article",
   "comment_by": "User_name",
   "comment": "MY comments"
}

UserInfoDB

{
   "_id": ObjectID(...),
   "user": "User_name",
   "password": "My_password"
}

非常感谢您的评论。

最佳答案

在您的位置,我会将 Comments 集合嵌入到 Posts 集合中。 这样做的缺点是,如果您有很多评论,则可能会达到 16MB 的限制。 优点是预先连接了数据,因此查询速度会更快。无论如何,您不会在没有帖子的情况下寻找评论。

另一件事是,您可以将“user”字段设为 UserInfo 集合的 ID。这样您就可以在评论中引用唯一用户。

关于node.js - 了解 NoSQL 数据建模 - 博客应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17289900/

相关文章:

javascript - 如何计算 Node.js 包的加载时间损失?

node.js - 从另一个 lambda 调用 lambda 时出现问题

mongodb - 在 mongodb 中使用未知键查询

ruby - 在不同服务器上执行多项任务的作业

mysql - 在 Visual Studio 2010 中更新触发器

php - 为什么某些 MySQL 字段现在需要默认值?

javascript - Sequelize : TypeError: Cannot read property '_modelAttribute' of undefined

javascript - Node 服务空白页

java - 基于嵌套文档的可用部分数据进行查询(在morphia、mongoDB中)

php - PHP 应用程序是否应该对不正确的数据库值执行错误处理?