Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在meteorjs应用程序&;中从我的收藏中删除重复项&;渲染每个玩家最近的分数_Javascript_Mongodb_Meteor_Collections - Fatal编程技术网

Javascript 在meteorjs应用程序&;中从我的收藏中删除重复项&;渲染每个玩家最近的分数

Javascript 在meteorjs应用程序&;中从我的收藏中删除重复项&;渲染每个玩家最近的分数,javascript,mongodb,meteor,collections,Javascript,Mongodb,Meteor,Collections,我正在开发一个Meteorjs应用程序,它在后端使用MongoDB。在我的收藏中,有许多重复的数据,如(仅举一个例子) 我想将所有这些集合复制到一个数组中,删除重复的名字,只保存每个玩家的名字和最近的分数,例如 {name:'A',score: 2, date: 4456546} {name:'B',score: 2, date: 4456546} {name:'C',score: 2, date: 4456546} 为此,我尝试使用update方法$puch,但不起作用 你知道怎么解决这个问

我正在开发一个Meteorjs应用程序,它在后端使用MongoDB。在我的收藏中,有许多重复的数据,如(仅举一个例子)

我想将所有这些集合复制到一个数组中,删除重复的名字,只保存每个玩家的名字和最近的分数,例如

{name:'A',score: 2, date: 4456546}
{name:'B',score: 2, date: 4456546}
{name:'C',score: 2, date: 4456546}
为此,我尝试使用update方法$puch,但不起作用

你知道怎么解决这个问题吗??
thak’s help

不完全清楚您想做什么,但您可以使用下划线来查找唯一的值。在下面的示例中,我使用sort将值从最高日期排序到最低日期。接下来,我将uniq函数与iteratee函数一起使用,该函数返回名称作为检查唯一性的值

var allScores = [
    {name:'A',score: 2, date: 4456546},
    {name:'A',score:33, date:3453454},
    {name:'A',score:34, date: 3453},
    {name:'A',score:0, date: 12334},
    {name:'B',score:34, date: 3453},
    {name:'B',score:0, date: 12334},
    {name:'B',score: 2, date: 4456546},
    {name:'B',score:33, date:3453454},
    {name:'C',score:33, date:3453454},
    {name:'C',score: 2, date: 4456546},
    {name:'C',score:34, date: 3453},
    {name:'C',score:0, date: 12334}
];

var latestScores = _(allScores).chain().sort(function(a,b){return (b.date - a.date)}).uniq(function (x){ return x.name }).value();

// latestScores equals [{name:'A',score: 2, date: 4456546},{name:'B',score: 2, date: 4456546},{name:'C',score: 2, date: 4456546}]
您必须自己处理更新数据库的问题。最好先做个备份

var allScores = [
    {name:'A',score: 2, date: 4456546},
    {name:'A',score:33, date:3453454},
    {name:'A',score:34, date: 3453},
    {name:'A',score:0, date: 12334},
    {name:'B',score:34, date: 3453},
    {name:'B',score:0, date: 12334},
    {name:'B',score: 2, date: 4456546},
    {name:'B',score:33, date:3453454},
    {name:'C',score:33, date:3453454},
    {name:'C',score: 2, date: 4456546},
    {name:'C',score:34, date: 3453},
    {name:'C',score:0, date: 12334}
];

var latestScores = _(allScores).chain().sort(function(a,b){return (b.date - a.date)}).uniq(function (x){ return x.name }).value();

// latestScores equals [{name:'A',score: 2, date: 4456546},{name:'B',score: 2, date: 4456546},{name:'C',score: 2, date: 4456546}]