[英]Mongoose: presave document with reference
如果该文档的_id不能立即提供,那么引用该文档到另一个集合文档的最佳实践是什么?
var ModelA = new Schema({
aUniqueIdentifer: String,
...
)};
ModelA的aUniqueIdentifier是从另一个数据源提供的,并且被其他模型用来对其进行标识。
var ModelB = new Schema({
aUniqueForeignKey: type String,
aRef : {
type: mongoose.Schema.Types.ObjectID,
ref: 'ModelA'
}
)};
所以我可以保存一个modelA: modelA = new ModelA({aUniqueIdentifer: '500'});
然后要保存mobdelB,我需要使用ModelA对象填充它的aRef。 最佳做法是什么? 我应该在尝试保存之前执行一次findOne(aUniqueForeignKey)返回对象吗? 这似乎并不十分有效。
我调查了人口,但这似乎是现有的参考。
您可以使用.pre方法创建在保存之前运行的方法,然后将逻辑放入其中。 看起来像这样:
ModelB.pre('save', function(next) {
// Check if id is available
// if not run another method
// run next() to exit
next();
});
这将在您保存ModelB之前运行。
希望这会有所帮助,如果您添加更多信息,我也许能够提供更具体的解决方案。
您可以尝试使用填充。
填充是用其他集合中的文档自动替换文档中指定路径的过程
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.