Javascript 在条件很少的情况下,无法对db集合执行mongoose操作

Javascript 在条件很少的情况下,无法对db集合执行mongoose操作,javascript,json,mongodb,mongoose,mongoose-schema,Javascript,Json,Mongodb,Mongoose,Mongoose Schema,我在用Mongoose做MongoDB。我想做一些手术。不能得到结果 我有一个用户集合,其架构如下: {username: 'user1', id: 1, lastName: 'ln1' } {username: 'user2', id: 0, lastName: 'ln2' } Id可以是0、1、2或3 我想输入具有以下条件的新对象: 如果用户名存在且id为1,则更新详细信息 如果用户名不存在,则创建一个新条目,无需检查id 如果用户名存在且id为0、2或3(除1外),则不执行任何操作(不

我在用Mongoose做MongoDB。我想做一些手术。不能得到结果

我有一个用户集合,其架构如下:

{username: 'user1', id: 1, lastName: 'ln1' }
{username: 'user2', id: 0, lastName: 'ln2' }
Id可以是0、1、2或3

我想输入具有以下条件的新对象:

  • 如果用户名存在且id为1,则更新详细信息
  • 如果用户名不存在,则创建一个新条目,无需检查id
  • 如果用户名存在且id为0、2或3(除1外),则不执行任何操作(不要更新或在集合中输入用户),并保留此用户在数据库中输入失败时的值

请帮助。

我使用了promise库,但您也可以使用回调

假设:您希望处理用户模型

 User.findOne({username:"USERNAME"}).exec()
    .then((result)=>{
      if(result){
          if(result.id == 1){
         //update result object and then save it
           result.lastName="abc";
           result.save(); // it will update your result
            }else{
           console.log('failed to enter in the db.')  
           }
        }else{
          User(userObject).save(); // it will create new entry
        }

})