MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoose :non inserire se l'elemento è già memorizzato

Puoi utilizzare un update chiama con il upsert opzione per farlo:

TweetsModel.update(
    {tweet_id: tweet.tweet_id}, 
    {$setOnInsert: tweet}, 
    {upsert: true}, 
    function(err, numAffected) { .. }
);

Se esiste già un documento con quell'ID tweet, allora questo è un no-op. Altrimenti aggiungerà il documento.

$setOnInsert richiede v2.4+ di MongoDB. Se la tua versione è inferiore alla 2.4, le cose si complicano.