我是sails js的新手,我想使用多对多关联将数据插入mongodb,但我不知道我应该首先插入哪个集合以及如何插入它。以下是我的模特:
// User.js
module.exports={
attributes:{
firstname:{
type:'string'
},
lastname:{
type:'string'
},
pets:{
collection:'pet',
via:'owners',
dominant: true
}
}
};
// Pet.js
module.exports={
attributes:{
name:{
type:'string'
},
type:{
type:'string'
},
owners:{
collection:'user',
via:'pets'
}
}
};
我首先尝试将数据插入宠物收藏中,但我没有看到收藏品已更新。这就是我将数据插入宠物收藏的方式:
Pet.create({'name':req.body.name,'type':req.body.type}).exec(function(err,data){
if(err) return next(err);
res.json(data);
});
提前感谢您的帮助
答案 0 :(得分:0)
如果您有现有的用户记录,您可以在添加宠物时指定它们的数组:
Pet.create({
'name':req.body.name,
'type':req.body.type,
'owners': [userId1, userId2]
}).exec(function(err,data){
if(err) { return next(err); ]
res.json(data);
});
或者,您可以在添加新用户时指定新的宠物ID:
Pet.create({
'name':req.body.name,
'type':req.body.type
}).exec(function(err,newPet){
if(err) { return next(err); ]
User.create({ name: 'tom', pets: [newPet.id] }).exec(function(err, newUser) {
if (err) { return next(err); }
return res.json({ pet: newPet, user: newUser });
});
});
之后,在Sails 0.12.x中,您可以使用the associations docs中记录的方法添加/删除集合中的项目。在Sails 1.0中,您使用addToCollection,removeFromCollection和replaceCollection方法。