Javascript 相互比较minimongo系列中的所有项目

Javascript 相互比较minimongo系列中的所有项目,javascript,meteor,minimongo,Javascript,Meteor,Minimongo,我创建了一个本地minimongo集合&我想将集合中的每个项目与所有其他项目(组合,而不是排列)进行比较。 如果它是一个数组,它将如下所示: for (var i = 0; i < coordCount - 1; i++) { for (var j = i + 1; j < coordCount; j++) { console.log(i,j); } } for(变量i=0;i

我创建了一个本地minimongo集合&我想将集合中的每个项目与所有其他项目(组合,而不是排列)进行比较。 如果它是一个数组,它将如下所示:

for (var i = 0; i < coordCount - 1; i++) {
  for (var j = i + 1; j < coordCount; j++) {
    console.log(i,j);
  }
}
for(变量i=0;i
用minimongo可以吗?我的第一个想法是使用
hasNext()
next()
,但它们并不存在。然后,我想我可以
聚合
并根据唯一的组合进行分组,但这在客户端上也不存在。

有一个Cursor.forEach()方法来迭代集合,它可以引导正确的方向(请参见此处:),但在您的情况下,您需要更多。也许这会有帮助:

这就是forEach的工作原理:

// sort your cursor to get always reproducable results
var items = Items.find({}, {sort: {someprop: 1}});
var count = Items.count();
items.forEach(function (item, idx, cursor) {
  // item is your document
  // idx is a 0 based index
  // cursor is the.. cursor
  ...
  // break if idx >= count - 1
});
这可能是一个解决方案(虽然不是很优雅,而且可能会占用大量内存)

// sort your cursor to get always reproducable results
var items = Items.find({}, {sort: {someprop: 1}}).fetch();

_.each(items, function (item, idx) {
  // item is your document
  // idx is a 0 based index
  if (idx >= items.length - 1) {
    return;
  }

  yourCompareMethod(item, items[idx + 1]);
});