sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB Update array-element (dokument med en nyckel) om det finns, annars tryck

Du kan använda $addToSet för att lägga till ett objekt i arrayen och $set för att uppdatera ett befintligt objekt i denna array.

Följande kommer att lägga till ett nytt objekt till arrayen om userID finns inte i arrayen :

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

Följande kommer att uppdatera underdokumentmatrisobjektet om det matchar userId :

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



  1. Express.js/Mongoose användarroller och behörigheter

  2. 'process.nextTick(function() { throw err; })' - Odefinierad är inte en funktion (mongodb/mongoose)

  3. Golang / MGO -- panik:inga nåbara servrar

  4. hur ställer jag in loggningsnivån till info för MongoDb?