【发布时间】:2014-06-20 02:43:45
【问题描述】:
嗯,我看到这里有一些这样的帖子,但它们对我没有帮助......
让我描述一下我的问题:
我有两个 Schema 的
var A = new Schema({
someAttribut: {type: String},
b: {type: ObjectId, ref:'B'}
});
var B = new Schema({
someAttribut2: {type: Boolean, 'default': false'}
});
现在我的情况是,我已经有一个 B-Object,我想创建一个 A-Object。
所以我这样做:
var a = new A(req.aFromClient); // {_id:null, someAttribute:'123', b:null}
//load b from Database ...
a.b = existingBFromDatabase; // {_id: 'Sb~Õ5ÙÐDâb', someAttribute2: false}
b 对象是从我的 monogDB 加载的。调试器为我的 b 显示了一个有效的 ObjectId(53627ed535d9d04416e26218 或 Sb~Õ5ÙÐDâb)。
但是当我保存我的新 A-Object 时,我收到错误:'CastError: Cast to ObjectId failed for value "" at path "_id"'
我不明白为什么会出现此错误。 首先,我没有在模式中定义 id,所以猫鼬应该添加它,这似乎有效。 其次,我认为mongoose应该在我创建一个对象的时候生成一个新的ID。
你有什么建议吗?
【问题讨论】: