我创建了一个本地的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
并对特殊组合进行分组,但客户端上也不存在。
答案 0 :(得分:0)
有一个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]);
});