帆在两个模型中插入相同的对象

有可能插入两个对象等于两个模型? 我创build了两个模型播放列表和歌曲,并创build了一个歌曲1和两个播放列表:播放列表1和播放列表2; 我希望播放列表1有歌曲1和播放列表2有相同的歌曲(歌曲1)。

但是,当我将播放列表1中的歌曲1与播放列表2中的歌曲1相关联时,播放列表1中的关系消失。 关系是1到N,我试着用关系N到N,但我解决不了。

有人可以帮我吗? 🙁


对不起,我的问题是,在一个控制器我有主要模型和两个模型的工作。

主要型号:

--- Playlist.js --- module.exports = { attributes: { name: { type: 'string', required: true, unique: true }, // Associations tablets_playlists: { collection: 'Tablet', via: 'lista_tablet' }, songs_playlist: { collection: 'Song', via: 'song' } } }; 

其他型号:

 --- Song.js --- module.exports = { attributes: { group: { type: 'string', required: true, unique: true }, song: { type: 'string' }, // Association song: { collection: 'Playlist', via: 'songs_playlist' } } }; --- Tablet.js --- module.exports = { attributes: { MAC: { type: 'string', required: true, unique: true }, // Associations lista_tablet: { collection: 'Playlist', via: 'tablets_playlists' } }; 

当我在呈现视图中将歌曲与播放列表或带有播放列表的平板电脑相关联时,不会出现。 但是,如果关系是1到N,它就会出现。 而当我把两个相同的歌曲,服务器崩溃,我认为这是因为有或试图在bbdd中添加两个等于对象。

这是我的方法将平板电脑与播放列表相关联,类似于歌曲(我之前发布)。

 associateTabletToPlaylist: function(req,res,next){ var tablet_id = req.param('tablet_id'); var playlist_id = req.param('playlist_id'); Playlist.findOne(playlist_id, function foundPlaylist(err, playlist) { if (err) return next(err); if (!playlist) return next(); playlist.tablets_playlists.add(tablet_id); playlist.save(function createAssociation(err, saved) { if (err) res.redirect('/playlist/associateTablet/'); res.redirect('/playlist/show/' + playlist_id); }); }); } 

这是PlaylistController中的代码来显示,以呈现视图:

 // render the profile view (eg /playlist/show/.ejs) show: function(req, res, next) { Playlist.findOne(req.param('id'), function foundPlaylist(err, playlist) { if (err) return next(err); if (!playlist) return next(); Tablet.find({'listas_reproduccion':playlist.id},function foundTablets(err, tablets) { if (err) return next(err); if (!tablets) return next(); Song.find({'song':playlist.id}, function foundSongs(err, songs) { if (err) return next(err); if (!songs) return next(); res.view({ songs: songs, tablets: tablets, playlist: playlist }); }); }); }); }, 

看起来你有一对一的关系,但是你需要多对多的关系。

歌曲有很多播放列表,播放列表有很多歌曲。 你必须通过属性:

歌曲模式:

 module.exports = { attributes: { name:'STRING', // Add a reference to Playlists playlists: { collection: 'playlists', via: 'songs' } } } 

播放列表模式:

 module.exports = { attributes: { name:'STRING', // Add a reference to Songs songs: { collection: 'songs', via: 'playlists' } } }