gpt4 book ai didi

node.js - Mongoose/MongoDB 中嵌套模式的正确模式是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:03:52 25 4
gpt4 key购买 nike

对我来说,执行以下操作似乎是合乎逻辑的:

var AvatarSchema = new Mongoose.Schema({
type: String,
url: String
});

var UserSchema = new Mongoose.Schema({
avatars: [AvatarSchema],
email: String,
name: String,
salt: String,
token: String
});

var ThinUserSchema = new Mongoose.Schema({
avatars: [AvatarSchema],
email: String,
firstname: String,
lastname: String,
});

var QuestionSchema = new Mongoose.Schema({
question: String,
users: [ThinUserSchema]
});

以后再说吧。 . . 执行以下操作:

var question = new Question({
question: 'Wut?',
users: users //where users is an array of instances of a user model of the UserSchema
});

在这里,我希望问题的用户部分填充有头像、电子邮件、名字和姓氏。 . .但是由于用户/头像已经有_id,这些不会持久化。

  • 从用户/头像中删除每个 _id 似乎很愚蠢。
  • 明确设置每个用户/头像似乎效率低下。
  • 切换到混合类型,将所有内容都放入其中,并且需要 markModified。

这些模式的正确模式是什么?

谢谢!

最佳答案

我相信你的假设是正确的,它在 Mongoose 中被称为嵌入式文档,这是来自 Mongoose 文档的示例。

var Comments = new Schema({
title : String
, body : String
, date : Date
});

var BlogPost = new Schema({
author : ObjectId
, title : String
, body : String
, date : Date
, comments : [Comments]
, meta : {
votes : Number
, favs : Number
}
});

mongoose.model('BlogPost', BlogPost);

免责声明:我不一定将逗号放在项目之前!

关于node.js - Mongoose/MongoDB 中嵌套模式的正确模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com