我有一個MongoDB數據庫設置了一些具有唯一代碼(而不是主鍵)的對象。 我還應該注意到,我使用的是NodeJS,並且此代碼位於我的server.js中以連接到MongoDB數據庫。while循環來檢查自定義ID的唯一性
要生成一個新的代碼,我隨機生成一個,我想檢查它是否已經存在。如果沒有,那麼我們使用它沒有問題,但如果它已經存在,我想生成另一個代碼並再次檢查它。這是我用它來檢查,如果該ID已經存在的代碼:
function createPartyId(callback) {
var min = 10000, max = 99999;
var partyId = -1, count = -1;
async.whilst(
function() { return count != 0; },
function (callback) {
partyId = min + Math.floor(Math.random() * (max - min + 1));
partyId = 88888;
getPartyIdCount(partyId, function(num) {
count = num;
});
},
function (err) {
}
);
}
function getPartyIdCount(partyId, callback) {
count = -1;
db.db_name.find({id: partyId}, function(err, records) {
if(err) {
console.log("There was an error executing the database query.");
callback(count);
}
count = records.length;
callback(count);
});
}
您能否提供您的getExistingCount()的實際實現? – sreisman
我用代碼 – appel
更新了我的主帖我認爲find函數返回undefined時可能會出錯 – appel