【问题标题】:Mongoose crud on nested documents嵌套文档上的猫鼬杂物
【发布时间】:2020-08-18 21:21:24
【问题描述】:

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

我正在创建一个简单的博客开始,我的猫鼬模式是这样的

博客

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

图片

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

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

为了不重复逻辑,我分成了两个模式,因为我还可以添加一个用户图,其中包含个人资料照片(图片模式)

我主要关心的是我将如何为用户和博客模式执行 crud 操作,因为它们有一个子文档图片,它是一个字符串,但必须使用 multer、cloudinary 和 fs 实现上传。我是否必须提出两个请求才能分开创建文档及其子文档?

你的帮助对我来说很宝贵

【问题讨论】:

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


    【解决方案1】:

    您不应该制作这样的架构。与博客相关的所有内容都应该在其架构中,因此如果图像是博客的一部分,那么只需将其添加到博客的架构中:

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

    然后这个images数组就可以有这个Blog的图片的url。对于用户部分,您应该为具有该用户的用户名、密码等和个人资料图片的用户创建另一个模式。通过这种方式,事情更有条理和可读性,而不是重复逻辑并不意味着你应该让它变得如此模块化以至于它变得混乱。保持简单 博客架构中与博客相关的所有内容 用户架构中的用户的所有内容等等。

    【讨论】:

    • 谢谢你的建议@Hadi Pawar
    • 如果它适合您,请考虑接受答案;)
    猜你喜欢
    • 1970-01-01
    • 2016-06-08
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 2015-01-06
    • 2016-06-05
    相关资源
    最近更新 更多