Meteor Collection 消除重复项
Meteor Collection eliminate duplicates
我有一个 collection 电影位于类别下,但我有一个视图应该显示所有这些。
当我展示全部时,我有一些重复的,因为这些电影属于多个类别。
我正在尝试在助手(客户端)中使用此代码。
我发现这段代码可以让我得到所有没有重复的标题:
var distinctMovies = _.uniq(Movies.find({}, {
sort: {"title": 1},
}).fetch().map(function(x) {
return x.title;
}), true);
这似乎可以消除重复,因为我得到了一个包含 241 个标题而不是 251 个标题的数组。
但是,我想要一个包含整个 object 的数组,而不是仅包含标题的数组,但是当我按 x
切换 x.title
时,我得到相同的 251 个项目。
我正在尝试更改此代码以获取整部电影 object 并且还尝试不 运行 额外的循环。
如何实现?
根据 _.uniq
文档:
If you want to compute unique items based on a transformation, pass an iteratee function.
这样做:
_.uniq(Movies.find({}, { sort: { title: 1 } }).fetch(), function (movie) {
return movie.title;
});
对我有用:
Template.theater_list.theater=function(){
var cities = _.uniq(Theater.find({}, {sort: {city:1}, fields: {city:true}}).fetch().map(function(x) {
return x.city
}),true);
return cities;
我有一个 collection 电影位于类别下,但我有一个视图应该显示所有这些。
当我展示全部时,我有一些重复的,因为这些电影属于多个类别。
我正在尝试在助手(客户端)中使用此代码。
我发现这段代码可以让我得到所有没有重复的标题:
var distinctMovies = _.uniq(Movies.find({}, {
sort: {"title": 1},
}).fetch().map(function(x) {
return x.title;
}), true);
这似乎可以消除重复,因为我得到了一个包含 241 个标题而不是 251 个标题的数组。
但是,我想要一个包含整个 object 的数组,而不是仅包含标题的数组,但是当我按 x
切换 x.title
时,我得到相同的 251 个项目。
我正在尝试更改此代码以获取整部电影 object 并且还尝试不 运行 额外的循环。
如何实现?
根据 _.uniq
文档:
If you want to compute unique items based on a transformation, pass an iteratee function.
这样做:
_.uniq(Movies.find({}, { sort: { title: 1 } }).fetch(), function (movie) {
return movie.title;
});
对我有用:
Template.theater_list.theater=function(){
var cities = _.uniq(Theater.find({}, {sort: {city:1}, fields: {city:true}}).fetch().map(function(x) {
return x.city
}),true);
return cities;