我创建了一个本地的minimongo集合&我想将集合中的每一项与所有其他项(组合,而不是排列)进行比较。如果它是一个数组,它看起来就像这样:
for (var i = 0; i < coordCount - 1; i++) {
for (var j = i + 1; j < coordCount; j++) {
console.log(i,j);
}
}使用minimongo可以做到这一点吗?我的第一个想法是使用hasNext()和next(),但它们并不存在。然后我想我可以对唯一的组合进行aggregate和分组,但这在客户机上也不存在。
发布于 2015-02-21 20:54:50
有一个Cursor.forEach()方法可以遍历您的集合,它可以引导您朝着正确的方向前进(参见此处:http://docs.meteor.com/#/full/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]);
});https://stackoverflow.com/questions/28641130
复制相似问题