gpt4 book ai didi

javascript - MongoDB 查询结果作为循环 Controller

转载 作者:行者123 更新时间:2023-12-03 11:00:17 25 4
gpt4 key购买 nike

我需要为对象字段分配随机数,然后检查数据库中是否存在这样的对象。如果不保存,则分配新的随机值并再次检查数据库,依此类推。我知道问题是由同步引起的,但我不知道如何解决。

while (controller = 0) {
var x = Math.floor((Math.random() * 10) + 1);
Model.findOne({'x': x}, function(err, result) {
if (err) throw err;
if (!err && !result) controller = 1;
else controller = 0;
});
}

最佳答案

警告:我不知道您的案例的详细信息,但您的方法可能会显着降低性能。特别是对于随机数较大的 MAX_VALUE。

要解决异步回调的问题,您可以定义一个函数并递归调用它:

function saveIfNotExists() {
var x = Math.floor((Math.random() * 10) + 1);
Model.findOne({'x': x}, function(err, result) {
if (err) throw err;

if (!result) {
// save object here
} else {
saveIfNotExists();
}
});
}

关于javascript - MongoDB 查询结果作为循环 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com