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

Kan ikke opdatere dataene i mongodb

Din update sætningen er forkert, den har malplacerede argumenter - du sætter flere $set operationer og muligheder som forskellige parametre til opdateringsmetoden; de skal være under separate udpegede opdateringsparametre. Den korrekte Node.js syntaks er:

update(selector, document, options, callback)

hvor selector er et objekt, som er vælgeren/forespørgslen for opdateringsoperationen, document er også et objekt, som er opdateringsdokumentet og endelig en options objekt, som som standard er null og har de valgfrie opdateringsindstillinger.

Her gør du

update(selector, document, selector, document, options, options, callback)

I hvilken mongo opdaterer samlingen ved at bruge de to første parametre som korrekte, og det kaster naturligvis fejlen

fordi du har angivet for mange forkerte parametre.

Du har også forkert brug af positionsoperatøren. Det skal være en del af dokumentet, der skal opdateres, ikke i forespørgslen.

For den korrekte implementering skal du følge denne opdatering

db.getCollection('profiles').update(
    /* selector  */
    {
        "_id": ObjectId("57a9aa24e93864e02d91283c"),
        "ratings.round": 1
    }, 
    /* update document */
    {
        "$set": {
            "presentRound": 2,
            "interviewStatus": "in process",
            "scheduleInterviewStatus": false,
            "ratings.$.roundStatus": "selected"    
        }
    },
    /* optional settings */
    { upsert: true, multi: true }
)


  1. Får du en forbindelsesfejl, når du bruger redis-trib.rb til at oprette en klynge?

  2. Slaget om NoSQL-databaserne - Sammenligning af MongoDB og CouchDB

  3. Hvordan undgår MongoDB SQL-injektionsroden?

  4. Mongodb:beregnet connectToField inde i graphlookup