首页 > 解决方案 > 注释和版本的猫鼬模式

问题描述

我想像这样在猫鼬中创建一个模式

用户可以通过给出标题和内容来创建新笔记用户可以更新笔记,这将创建笔记的新版本每个版本的笔记可以单独查询。

我使用 Mysql 并且是 MongoDB 的新手,请给我建议一个模式,我如何插入新注释,更新节点?

标签: mongodbmongoose

解决方案


背景

首先,我认为值得您阅读有关基于文档的数据库以及 MongoDB 如何实现这一点的内容。这些是很好的读物:

https://www.ibmbpnetwork.com/linux-blog/mongodb-architecture

https://medium.com/chingu/an-overview-of-mongodb-mongoose-b980858a8994

架构

关于您的问题,可能有很多答案,尤其是:

如何插入新笔记,更新节点?

我会将您的user架构链接到 a 的架构note,如下所示:

var notesSchema = mongoose.Schema({
  title:       String,
  description: String,
  user:        [{ type: Schema.Types.ObjectId, ref: 'User' }],
  created_at:  { type: Date, default: Date.now },
  updated_at:  { type: Date, default: Date.now }
  ... 
  ...
});

您的用户模式将在其他地方定义(假设您可以这样做?)。阅读“子文档”并查看它是否更适合您的模型也可能很有用。

注意:添加您需要的字段,默认情况下所有字段都是可选的,可能对description&有用title

我不确定你希望你的笔记有多大,但请记住

唯一的限制是 16MB 的最大文档大小

所以你如何存储这个,我会让你决定。

要插入新注释,您需要调用您的 API,这也是相当模糊的,并且可以根据您的设计以多种方式完成。

Mongoose 可以很容易地插入文档和更新文档。


推荐阅读