2017-10-13 12 views
0

我使用Mongoose作爲Mongo數據庫。我想要執行一些操作。無法獲得結果。無法使用貓鼬對數據庫集合執行操作,但條件很少

我有一個收集用戶喜歡的模式:

{username: 'user1', id: 1, lastName: 'ln1' } 
{username: 'user2', id: 0, lastName: 'ln2' } 

標識可以是0,1,2或3

我想進入這些conditons一個新的對象:

  • 如果用戶名存在且ID爲1,則更新詳細信息。
  • 如果用戶名不存在,則創建一個新條目,不需要檢查ID。
  • 如果用戶名存在且id爲0,2或3(除1以外),則不執行任何操作(不要更新或輸入集合中的用戶),並保留此用戶在db中輸入失敗的值。

請幫忙。

回答

1

我用承諾庫,但你也可以使用回調

假設:你想在用戶模式

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 
     } 

}) 
+0

Thanq @Sam它正在工作! –