gpt4 book ai didi

node.js - Mongoose 嵌入文档预保存

转载 作者:IT老高 更新时间:2023-10-28 12:30:33 26 4
gpt4 key购买 nike

我有两个模型,一个是User,另一个是Reservation。我想在每个预订中嵌入一个用户对象。用户已创建并存储在用户集合中。当我尝试创建一个新的 Reservation 对象时,我的 User 对象会通过预保存方法并最终失败,因为存在唯一的用户名字段。将对象嵌入到另一个集合时,有没有办法绕过该预保存方法,还是我的方法完全错误?我的预订模式代码。谢谢!

import User from './../users/users.model';
const Schema = mongoose.Schema;

export default new Schema({
user: {
type: User
}
});

编辑:当我明确定义架构时,它会绕过预保存方法(这是有道理的),但如果我想更改架构,我需要在两个不同的地方进行更改。

最佳答案

您可以按照此流程进行操作。

您应该为 Reservation 文档推荐特定的用户,而不是引用完整的collection。何时保存或创建新的您应该将用户 id 存储为 ObjectId 的保留 信息,并将该 id 引用到用户模型以引用 user 模型使用 ref 关键字。这样您就可以轻松地从 Reservation 模型中填充 user

喜欢:

user:{
type: Schema.Types.ObjectId,
ref: 'User'
}

而不是

user: {
type: User
}

或者如果你想在reservation schema中嵌入user schema那么可以使用like

user: {
type: [User]
}

关于node.js - Mongoose 嵌入文档预保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36969930/

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