0

我正在尝试从 MongoDB 实现(半)随机结果;我知道,Q/A 有很多,就在这里。但是......当我尝试查询 MongoDB 时,只是为了好玩,看看我会得到什么,$lte 给了我一些非常奇怪的结果。考虑这个数据集:

1. 0.011224885703995824
2. 0.01718393270857632
3. 0.03377954219467938
4. 0.09617210761643946
5. 0.10130057414062321
6. 0.13116577989421785
7. 0.25664394721388817
8. 0.27124307211488485
9. 0.3029055509250611
10. 0.31508319173008204
11. 0.3163822046481073
12. 0.34581731259822845
13. 0.5077376591507345
14. 0.5806738587561995
15. 0.5997774603310972
16. 0.6492975174915045
17. 0.710568506969139
18. 0.7257499841507524
19. 0.7275129975751042
20. 0.771076871547848

存储在一个名为 random 的字段中,并用 rand 函数填充。这个字段有一个索引,但是有 20 条记录,我认为这并不重要。但。如果我查询:.findOne( {'random': { $lte : 0.59 }} )我得到结果:“随机”:0.34581731259822845(数字 12),而期望数字 14...?当我尝试更多查询时,结果很奇怪。有时它是我所期望的,但大多数时候它似乎......嗯,我不知道。我不明白上面的查询如何导致它给出的结果......

4

1 回答 1

0

啊! 我想我现在明白了——这就是 Yogesh 的意思:findOne 以符合标准的自然顺序获取第一个文档!正确的。我没明白。所以这意味着如果随机数很高,它通常会返回相同的数字。所以 Yogeshes 的回答是正确的——尽管他可能已经详细说明了一点:-)

于 2015-06-02T06:21:20.667 回答