尝试在Node.js和MongoDB中查找唯一ID,方法是创建一个while循环,在MongoDB中查询现有ID,直到找到唯一值.如果ID已在使用中,则数字会在末尾递增,直到Mongo不返回任何内容.
一切正常,除了break;找到唯一ID 的声明.Node.js返回:SyntaxError: Illegal break statement
代码:
db.collection('landmarks').findOne({'id':uniqueIDer}, function(err, data){
//if ID exists already
if (data.id){
var uniqueNumber = 1;
while (1) {
var uniqueNum_string = uniqueNumber.toString();
var newUnique = data.id + uniqueNum_string;
db.collection('landmarks').findOne({'id':newUnique}, function(err, data){
if (data.id){
uniqueNumber++;
}
else {
saveLandmark(newUnique);
break;
}
});
}
}
else {
saveLandmark(uniqueIDer);
}
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:
这是使用异步的固定代码,如果有人需要它:)
db.collection('landmarks').findOne({'id':uniqueIDer}, function(err, data){
if (data){
var uniqueNumber = 1;
var newUnique;
async.forever(function (next) {
var uniqueNum_string = uniqueNumber.toString();
newUnique = data.id …Run Code Online (Sandbox Code Playgroud)