【问题标题】:Sails.js find where errorSails.js 找到哪里出错
【发布时间】:2016-01-10 02:44:29
【问题描述】:

大家!

我正在使用 postgres 研究风帆。我有一个包含曲目集合的播放列表。像这样:

Playlist = {
 tracks: {
  collection: track
 }
}

我尝试提出这样的请求:

Playlist.find({tracks: 1}).exec(...)

获取所有曲目 ID 为 1 的播放列表!

但风帆返回 => 详细信息:错误:playlist.tracks 列不存在。

不明白,因为水线创建了一个名为“playlist_tracks__track_tracks_track”的表,并且都是关系。

有人可以帮助我吗?

【问题讨论】:

    标签: javascript node.js postgresql sails.js waterline


    【解决方案1】:

    如果您想要所有包含某个 trackId 的播放列表,您应该根据该曲目拉取关联的播放列表。然后使用 map 你可以只返回播放列表部分。

    Tracks.findOne(1).populate('playlist').exec( (track) => {
      playlists = result.playlist
      console.log(playlists)
    })
    

    --- 或 ---

    Playlists.find().populate('track', {id: 1}).exec( /*...*/ )
    

    【讨论】:

    • 那是我们有一个多对多关联的时候吧?因为我只有 -> Playlist has_many 曲目。
    • 是的,它适用于多对多或一对多。重要的是你的选择标准是基于曲目的,所以首先找到你的曲目,然后根据它填充你的播放列表,然后你可以提取播放列表数组。这确实有多次选择同一个播放列表的缺点。 . . .我将使用第二种方法进行更新。
    猜你喜欢
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多