填充不起作用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是沉重的,也许使一些帮手将使其更轻..谢谢反正:)