我在mongoDB中的整個數據集(大約300萬個文檔)上運行以下查詢,以將字符串的用戶標識更改爲ints。該查詢似乎並沒有完成:將字符串更改爲mongoDB中的整數需要很長的時間
var cursor = db.play_sessions.find()
while (cursor.hasNext()) {
var play = cursor.next();
db.play_sessions.update({_id : play._id}, {$set : {user_id : new NumberInt(play.user_id) }});
}
我運行在相同的數據集此查詢並比較迅速恢復:
db.play_sessions.find().forEach(function(play){
if (play.score && play.user_id && play.user_attempt_no && play.game_id && play.level && play.training_session_id) {
print(play.score,",",play.user_id,",",play.user_attempt_no,",",play.game_id,",",play.level,",",parseInt(play.training_session_id).toFixed());
} else if (play.score && play.user_id && play.user_attempt_no && play.game_id && play.level) {
print(play.score,",",play.user_id,",",play.user_attempt_no,",",play.game_id,",",play.level);
};
});
我明白我在第一個查詢寫入數據庫,但爲什麼第一個查詢似乎永遠不會返回,而第二個查詢卻相對較快呢?第一個查詢中的代碼有問題嗎?