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 }} )、結果が得られます: "random" : 0.34581731259822845 (number 12), while expected number 14...? さらにいくつかのクエリを試してみると、結果は非常に奇妙です。時々それは私が期待するものですが、ほとんどの場合はそうです...まあ、わかりません. 上記のクエリがどのように結果につながるのかわかりません...

4

1 に答える 1