2017-04-21 3 views
2

J'utilise mongoose pour gérer MongoDB.Ajout d'un objet à un tableau en utilisant mongoose si valeur non trouvée, sinon mise à jour des champs

J'ai le document suivant

Posts:Array 
    0:Object 
     _id:58f9b2c903110b2c543fb7d1 
     postName:Test1 
     postText:Test2 
     postCount:0 
     status:true 

Je voudrais faire une demande HTTP mettre à jour ou insérer un objet à ce tableau basé sur postname.

par exemple, si je passe ce qui suit

{ 
    postName:Test1 
    postText:Test3 
    postCount:50 
    status:false 
} 

Que correspond postname et je voudrais à jour juste postText, postCount et le statut. Si postName ne correspond à aucun des objets du tableau, je voudrais qu'il insère un nouvel objet.

Cette question peut-être dupliquer à d'anciennes questions, j'ai cherché et je ne pouvais pas trouver la réponse. J'ai aussi essayé d'utiliser $ setOnInsert mais je n'ai pas réussi à le faire fonctionner.

+0

Utilisez cette db. collection.update ( , , { upsert: true } ) ' –

+0

Qu'est-ce que ? comment puis-je le faire sur la base de postName? Merci –

+0

db.collection.update ({postname:} Test1, { postname: postText Test1: Test3 postCount: 50 état: false }, {upsert: true}) –

Répondre