我偶然發現了一個相當奇怪的問題。我的應用程序中有一個mongo集合,大約有4,800,000條記錄。我正在使用從該集合返回2 400 000條記錄的查詢。因此,我遍歷它們並在每條記錄上創建嵌入式文檔。當我查看我的日誌時,我注意到迭代發生了超過400萬次。我深入挖掘並發現,許多記錄多次進入迭代。這意味着具有相同ID的記錄在不止一次出現在日誌中進行處理。下面是查詢:Rails和mongoid返回查詢重複記錄
MyModel.where({integer_array: {"$not" => {'$size' => 0}}}).all.each do |n|
很奇怪的是,那個時候我在鐵軌控制檯MyModel.where({integer_array: {"$not" => {'$size' => 0}}}).count
運行,我得到大約240萬的結果。 我在rails 3.2.13,mongoid 3.0.21和mongodb 2.4.0上運行。
是的,感謝的人,就是這樣。我修改了這樣的查詢:'MyModel.where({integer_array:{「$ not」=> {'$ size'=> 0}}})。hint(「_ id」=> 1).each do | n | ' – user2040438
非常感謝你爲此嘗試調試類似問題的時間很長,但沒有這個答案 –