我有一个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