sql >> Database >  >> NoSQL >> MongoDB

MongoDB Update array-element (document met een sleutel) indien aanwezig, anders push

U kunt $addToSet . gebruiken om een ​​item aan de array toe te voegen en $set om een ​​bestaand item in deze array bij te werken.

Het volgende zal een nieuw item aan de array toevoegen als de userID is niet gevonden in de array :

db.doc.update({
    visits: {
        "$not": {
            "$elemMatch": {
                "userID": 4
            }
        }
    }
}, {
    $addToSet: {
        visits: {
            "userID": 4,
            "time": 1482607614
        }
    }
}, { multi: true });

Het volgende zal het subdocumentarray-item bijwerken als het overeenkomt met de userId :

db.doc.update({ "visits.userID": 2 }, {
    $set: {
        "visits.$.time": 1482607614
    }
}, { multi: true });



  1. Hoe om te gaan met verouderde verbindingen in MongoDB

  2. Groepeer records per maand en tel ze - Mongoose, nodeJs, mongoDb

  3. Zijn MongoDB-indexen persistent tijdens herstarts?

  4. mongodb sorteervolgorde op _id