我遇到了一个大问题,我试图在Mongoose中使用模型关联,因为它确实很有用,但是有些事情我还是不明白...
假设有一个User模式,其模式类似于...(以及其他模式)
user_geos : [{
type: Mongo.Schema.ObjectId,
ref: 'UserGeo',
}]
还有一个带有此架构的UserGeo模型...(还有其他)
_user: {
type: Mongo.Schema.ObjectId,
ref: 'User'
}
很简单,当我创建一个新的UserGeo时,它应该自动将其添加到User内的user_geos数组中,对吗?
user_geo_infos._user = user.id;
db.UserGeo.create(user_geo_infos, function(error, user_geo) {
catches.error(error);
console.log(user_geo);
});
我遇到的最大问题是,当我创建它时,它会正确填充数据库中UserGeo的“ _user”字段,但User模型不会自行填充。数组保持为空(“ []”)。一个细节,但您真正理解的是UserGeo有一个用户,而User有许多UserGeo。
我真的被卡住了,我做错了吗?我到处检查了一下,现在像10次阅读了Mongoose文档...
任何想法 ?谢谢大家;)
最佳答案
很简单,当我创建一个新的UserGeo时,它应该自动将其添加到User内的user_geos数组中,对吗?
不。这里有比您所希望的少的魔术/自动东西。 Mongodb和Mongoose一次只能作用于一个集合。当您加载记录并使用猫鼬.populate
辅助程序时,这将自动执行查询,但并不能帮助您跨集合编写。
关于node.js - 填充不起作用 Mongoose (无数据库插入),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23411505/