Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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
Node.js 在express js中使用mongoDB find()_Node.js_Mongodb_Express_Find - Fatal编程技术网

Node.js 在express js中使用mongoDB find()

Node.js 在express js中使用mongoDB find(),node.js,mongodb,express,find,Node.js,Mongodb,Express,Find,我试图检查一个人是否已经申请了一份工作,因此我使用find()方法来获取带有我要传递的工作Id和用户Id的文档,但它总是发布数据,而不是检查这些数据是否已经存在 这是密码 router.post('/', async(req,res)=>{ const count = Apply.find({user:req.body.user, job:req.body.job}).count() if(count>0){ return res.status(400).

我试图检查一个人是否已经申请了一份工作,因此我使用find()方法来获取带有我要传递的工作Id和用户Id的文档,但它总是发布数据,而不是检查这些数据是否已经存在

这是密码

router.post('/', async(req,res)=>{
   const count = Apply.find({user:req.body.user, job:req.body.job}).count()
    
  if(count>0){
    return res.status(400).send('already applied')
  }
 else{
  let apply = new Apply({
        job :req.body.job,
        user :req.body.user
        
    })

    apply = await apply.save();
    if(!apply)
    return res.status(400).send('cannot apply')
    res.send(apply);
 }
   
})
每一个请求都会得到

POST /api/v1/applys/ 200 141 - 58.007 ms

我不太了解如何使用find(),因此无法在这里解决问题。

因为您使用的是async/await add await before Apply.find

const count = await Apply.find({user:req.body.user, job:req.body.job}).count()

它成功了,谢谢你的欢迎,你也可以试着用create代替new,像这样保存const apply=wait apply.create({job:req.body.job,user:req.body.user})我会试试