我需要知道void sort(int n)
{
for (int p = 1; p < n; p += p)
for (int k = p; k > 0; k /= 2)
for (int j = 0; j < k; j++)
for (int i = k % p; i + k < n; i += k + k)
if ((i + j)/(p + p) == (i + j + k)/(p + p))
printf("%2i cmp %2i\n", i + j, i + j + k);
}
方法和cursor.limit()
聚合管道阶段$limit
答案 0 :(得分:1)
来自cursor.limit()
的{{1}}:
对于小于-2 ^ 31且大于2 ^ 31
的值,limit()的行为未定义
因此,我们可以推断2 ^ 31是最大值。
来自$limit
的{{1}}:
$ limit采用一个正整数,指定要传递的最大文档数。
所以,我认为我们可以推断出2 ^ 31也是最大值。虽然$limit
可能是64位整数,但最大值为:2 ^ 63。在这一点上,文档尚不清楚。
根据@AyushGupta的反馈进行更新:
所以我刚刚检查过,当写成数字而不是指数时,2 ^ 63对于$ limit来说太高了。 9223372036854775295是$ limit的上限似乎我可以测试
当然,limit()
的任何用法也都有效(而不是理论上),即;您要查询的集合中的文档总数。所以,如果你的收藏品有&lt; 2,147,483,647文件然后限制的最大值可能没有实际意义:)