【发布时间】:2016-05-17 08:34:24
【问题描述】:
我有两个模型,一个是User,另一个是Reservation。我想在每个预订中嵌入一个用户对象。用户已创建并存储在用户集合中。当我尝试创建一个新的 Reservation 对象时,我的 User 对象会通过预保存方法并最终失败,因为存在唯一的用户名字段。将对象嵌入到另一个集合时,有没有办法绕过该预保存方法,或者我的方法完全错误?我的预订模式代码。谢谢!
import User from './../users/users.model';
const Schema = mongoose.Schema;
export default new Schema({
user: {
type: User
}
});
编辑:当我明确定义架构时,它会绕过预保存方法(这是有道理的),但如果我想更改架构,我需要在两个不同的地方进行更改。
【问题讨论】:
-
唯一约束应该解析为一个 mongo 唯一约束,并且不应该应用于子文档(除非指定,即使那样我也不确定它是如何工作的)。您是否有可能要嵌入 User 模式而不是 User 模型,并且在定义 Reservation 模式时可能不包括唯一约束。
-
您使用的是哪个版本的猫鼬?尽管它很旧,但您是否检查过这个未解决的问题:github.com/Automattic/mongoose/issues/2645?