Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查数据库mongodb node js中是否存在多个数据数组?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 检查数据库mongodb node js中是否存在多个数据数组?

Javascript 检查数据库mongodb node js中是否存在多个数据数组?,javascript,node.js,express,Javascript,Node.js,Express,我想检查数据是否存在于数据库中。如果假设数据存在,则k的值设置为1 global.k = 0 va roll = {roll0:"1616",roll1:"234"} for (let i = 0; i < inputcount; i++) { var obj1 = roll["roll" + i]; const find = async() => { const item = await RegisterUser.find({ eventname: event_n

我想检查数据是否存在于数据库中。如果假设数据存在,则k的值设置为1

global.k = 0
va roll = {roll0:"1616",roll1:"234"}
for (let i = 0; i < inputcount; i++) {
  var obj1 = roll["roll" + i];

  const find = async() => {
    const item = await RegisterUser.find({ eventname: event_name, rollno: obj1 })
    if (item.length != 0) {
      global.k = 1
      console.log(global.k)
    } else {
      global.k = -1
      console.log(global.k)
    }
  }
  find()
}
  console.log(global.k)
if(global.k==0){
  // code for save
}
执行if循环后,值不是打印为1或-1。实际上,我认为问题在于异步。请帮助我

您呼叫“查找”,但不要等待结果。最好让异步函数包装整个循环:

const find = async() => {
  global.k = 0    
  for (let i = 0; i < inputcount; i++) {
    var obj1 = roll["roll" + i];    
    const item = await RegisterUser.find({ eventname: event_name, rollno: obj1 })
    if (item.length != 0) {
      global.k = 1
      console.log(global.k)
    } else {
      global.k = -1
      console.log(global.k)
    }
  }
  console.log(global.k);
  if (global.k == 0) {
     // save...
  }
}
find() // Don't put any code below this line. Put it at the end of the function above
如果在至少一个查询返回匹配项时需要将其设置为1,请在此处添加一个分隔符:


另外,如果global.k==0,则在末尾进行的检查也很奇怪,因为这相当于如果inputcount==0进行检查。因此,请务必检查您的逻辑。

您的代码的开始括号比结束括号多。请修复括号。不确定console.log是在循环内还是在循环外对不起,先生,现在请检查我的代码我尝试了,但该页面对我没有帮助,你能发布示例代码吗?当我在控制台内时,k的值为1或-1,先生,但在外时,值为0。实际上,在外部函数被执行之前,它最终被执行,这正是它应该如何工作的。您必须在then回调中执行此操作,因为数据库需要时间来完成其工作。或者,您必须将所有代码放在一个异步函数中。阅读异步代码。您必须尽一切努力使所有代码异步工作。先生,请检查git repo先生,我想检查数据库中是否存在多个数据所有这些数据不存在意味着k值为0之后,我将检查k值如果k为0,我将保存数据到DatabaseSorry,你应该编辑你的问题,并把相关的代码放在那里。还要解释“检查多个数据”的含义:解释要发送给客户的内容。请看我的答案,以及我在结尾处写的内容。我已经更新了我的问题和代码,先生,请检查我更新的代码
    } else {
      global.k = -1
      console.log(global.k)
      break;
    }
    if (item.length != 0) {
      global.k = 1
      console.log(global.k)
      break;
    }