填充不起作用Mongoose(没有数据库插入)
我有一个大问题,我试图在Mongoose中使用模型关联,因为这将是非常有用的,但有一些我不明白…
比方说,有一个像…一样的模式的用户模型(等等)
user_geos : [{ type: Mongo.Schema.ObjectId, ref: 'UserGeo', }]
还有一个用这种模式的UserGeo模型(除其他之外)
_user: { type: Mongo.Schema.ObjectId, ref: 'User' }
非常简单,当我创build一个新的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); });
我得到的最大的问题是当我创build它时,它正确填充数据库中的UserGeo中的“_user”字段,但用户模型不填充自身。 数组保持空(“[]”)。 一个细节,但你真正理解的是UserGeo有一个用户和用户得到了许多UserGeo。
我真的被卡住了,我做错了什么? 我到处检查,并像10次阅读Mongoose文档…
任何想法 ? 感谢人们;)
非常简单,当我创build一个新的UserGeo时,它应该自动将它添加到User中的user_geos数组中,对吗?
不。 这里有很less的魔法/自动的东西比你想要的要less。 Mongodb,以及mongoose,只能一次采取一次收集。 当你加载logging并使用mongoose.populate
助手时,这将自动进行查询,但是它不会帮助你跨集合写入。
好吧,我试图使它手动,它的工作,但我很失望…看起来像这样…
db.UserGeo.create(user_geo_infos, function(error, user_geo) { db.User.findOne(user.id, function(error, user) { catches.error(error); user.user_geos.push(user_geo.id); user.save(); }); catches.error(error); console.log(user_geo); });
创buildUserGeo后,我得到用户,然后将新的数据推送到用户字段…
这是解决scheme是沉重的,也许使一些帮手将使其更轻..谢谢反正:)