2017-10-13 5 views
0

J'utilise Mongoose pour Mongo db. Je veux effectuer quelques opérations. Pas en mesure d'obtenir les résultats.Impossible d'effectuer une opération avec mongoose sur la collection db avec peu de conditions

J'ai un UTILISATEURS de collection avec le schéma comme:

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

Id peut être 0,1,2 ou 3

Je veux entrer dans un nouvel objet avec ces conditons:

  • Si le nom d'utilisateur existe et que l'ID est 1, mettez à jour les détails.
  • Si le nom d'utilisateur n'existe pas alors créer une nouvelle entrée pas besoin de vérifier l'ID.
  • Si le nom d'utilisateur existe et l'ID est 0,2 ou 3 (autre que 1), ne rien faire (ne pas mettre à jour ou entrer l'utilisateur dans la collection) et conserver la valeur que cet utilisateur a omis.

Aidez-nous s'il vous plaît.

Répondre

1

J'ai utilisé la bibliothèque de promesse mais vous pouvez également utiliser les callbacks

Assomption: Vous voulez travailler sur le modèle de l'utilisateur

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 Il travaille @ Sam !! –