我想在的Express
服務器上測試路由。在該路線上,我將獲得來自MongoDB
的數據列表,並且該數據是,其按updatedAt字段排序。使用相同的更新時間戳排序MongoDB文檔?
我想測試輸出中的順序是否正確,但我有一個問題 - 看起來mongoDb太快了,以至於一些文檔有相同的時間戳(沒想到這是可能的) 。
這是如何內部排序?它似乎不是按_id排序的。以下是我測試中生成文檔的功能:
let first;
let last;
Array.from(Array(14)).forEach((e, i) => {
const immo = new Immo({ user: this.user.model });
immo.save();
if (i === 2) {
// last means last with limit 12 sorted by timestamps descending
last = immo._id.toString();
}
if (i === 13) {
// the last that was put in will be the first in the sorted list
first = immo._id.toString();
}
});
輸出是用戶編輯的最後12個項目。我保存了第一個和最後一個,所以我可以在測試中稍後聲明它們。
但測試失敗,因爲有3或4具有相同的時間戳,而實際上是最後一個我按照如何把它放在數據庫中的順序不是真正的最後時間Mongo按時間戳排序(或第一個按降序排列)。
我試圖通過輸入循環中的for-loop做一個延遲,但是什麼也沒做。 (我應該可能不使用Array.forEach?)
有什麼辦法可以確保文檔之間至少有幾個MS延遲?