上一个不存在时无法创建新架构

Unable to Create New Schema when Previous does not exists

这是我在 Node JS 中为费用跟踪应用程序插入新数据的逻辑。

我的查询是函数 createNewData() 永远不会执行。如果存在特定日期的先前 UserData 架构,则此代码可以毫无问题地更新它。

但是如果 UserData Schema 不存在,代码将无法创建新的。

我应该使用 UserData.findOne 以外的东西吗?我已经使用了 findOneAndUpdate() 和 exists() 但没有任何效果。我是猫鼬的新手,请帮助

app.post("/insert",(req,res)=>{
  const username = req.cookies.username;
  const Date = now.toLocaleDateString("en-Uk");
  const Amount = req.body.value;


  function createNewData(){
    const userData = new UserData({
      email:username,
      date:Date,
      amount: Amount
    });
  
    userData.save((err)=>{
      if(err){
        console.log(err);
      }else{
        console.log('newdatasaved');
        res.redirect("/")
      }
    });
    User.findOneAndUpdate({email:username},{$push:{data:userData._id}},(err)=>{
      if(err){
        console.log('cant push');
      }else{
        console.log('pushed data');
      }
    });
  }

  UserData.findOne({email:username,date:Date},(err,found)=>{
    if(err){
      createNewData();
      console.log('cant find on particular date new created');

    }else{
      if(found){
        let a = Number(found.amount);
        let b = Number(Amount)+a;
        UserData.findOneAndUpdate({email:username,date:Date},{$set:{amount:b}});
        console.log('updated in existing');
        res.redirect("/");
      }

    }
    
  })
 
})

创建一个单独的变量

let xyz = User.findOne({..conditions}).exec();

然后使用 if , else 语句帮助