猫鼬在嵌套文档上

时间:2020-05-04 12:38:34

标签: node.js mongodb express mongoose mongoose-schema

我是mongodb的初学者,我希望收到您关于采用最佳实践的建议。

我正在创建一个简单的博客来开始,我的猫鼬模式如下

博客

const Blog = new Schema({
    title : String,
    description : String,
    pictures: Schema.Types.Mixed
});

图片

const picture = new Schema({
    images : Array
});

图像架构将仅包含url,图像将存储在cloudinary中。

我分成两个模式,以便不重复逻辑,因为我还可以添加一个带有个人资料照片的用户图(图片模式)

我主要关心的是我将如何对用户和博客架构执行粗体操作,因为它们具有子文档图片,该图片是字符串,但必须使用multer,cloudinary和fs来实现上载。我必须发出两个请求才能分别创建文档和其子文档吗?

您的帮助对我来说将是宝贵的

1 个答案:

答案 0 :(得分:1)

您不应创建这样的架构。与Blog相关的所有内容都应在其架构中,因此,如果图像是Blog的一部分,则只需将其添加到Blog的架构中即可:

const Blog = new Schema({
    title : String,
    description : String,
    images: Array
});

然后,此图像数组可以具有该Blog的图片的URL。对于用户部分,您应该为具有用户名,密码等和该用户个人资料图片的用户创建另一个架构。这样,事情变得更有条理,可读性更强,没有重复的逻辑并不意味着您应该将其模块化,以免混淆。保持简单博客架构中与Blog相关的所有内容User架构中与Users有关的所有内容,依此类推。