sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb ställer in fältvärdet med om annat under dokumentuppdateringen

MongoDB stöder inte den typ av villkorad uppdatering du letar efter. Du kan dock fortfarande göra det bättre än att använda en metod för att hitta, loopa och spara.

Flytta tillståndskontrollen till update frågeväljare och utfärda sedan två uppdateringar (en för varje fall), med {multi: true} för att tillämpa uppdateringen på alla matchade dokument.

// Start with the "if" update
Documents.update(
    {some_condition: true, "some field": "some condition"}, 
    {$set: {"status": "value 1"}},
    {multi: true},
    function(err, numAffected) {
        // Now do the "else" update, using $ne to select the rest of the docs
        Documents.update(
            {some_condition: true, "some field": {$ne: "some condition"}}, 
            {$set: {"status": "value 2"}},
            {multi: true},
            function(err, numAffected) {
                // All done.
            }
        )
    }
)


  1. hoppade över antal 0 i aggregatfunktion

  2. Bästa sättet att modellera ett röstsystem i MongoDB

  3. Uppdatera meteorsamling utan att ta bort eller åsidosätta befintliga fält

  4. Ta bort ett element från array i mongodb