流星收集限制

时间:2014-11-23 20:27:46

标签: mongodb meteor

假设我有两个流星收藏:“电台”和“歌曲”。每首歌都有一个外键到一个电台,以显示它是在该电台播放的。

现在我想发布每个电台的最后3首歌曲,如下:

Meteor.publish("all-last-three-songs", function () {
    var stations = Stations.find();
    var stationIDs = stations.map(function(station) { return station._id });
    var songs = Songs.find({station_id: {$in: stationIDs}}, {sort: {time: -1}, {limit: 3}});
    return songs;
});

当然,它只为所有电台发布了3首歌曲。如何才能实现每个电台返回最后3首歌曲的光标?我不想在客户端进行过滤。

谢谢! :)

1 个答案:

答案 0 :(得分:0)

您可以使用map函数返回游标数组。只需将歌曲查询粘贴到当前的地图功能中即可。它不会返回一个id,而是返回具有给定id的电台的最后三首歌曲。

您也可以将其转换为数组数组或将其展平为单个数组。

然后,您可以对数据库中的id为此数组的所有歌曲执行新查询。