sql >> Databasteknik >  >> NoSQL >> MongoDB

Det gick inte att uppdatera data i mongodb

Din update uttalandet är felaktigt, det har felplacerade argument - du lägger flera $set operationer och alternativ som olika parametrar till uppdateringsmetoden; de bör vara under separata angivna uppdateringsparametrar. Rätt Node.js syntax är:

update(selector, document, options, callback)

där selector är ett objekt som är väljaren/frågan för uppdateringsoperationen, document är också ett objekt som är uppdateringsdokumentet och slutligen ett options objekt som som standard är null och har de valfria uppdateringsinställningarna.

Här gör du

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

I vilken mongo uppdaterar samlingen med de två första parametrarna som korrekta och det skapar naturligtvis felet

eftersom du har angett för många felaktiga parametrar.

Dessutom har du felaktig användning av positionsoperatören. Det bör vara en del av dokumentet som ska uppdateras, inte i frågan.

För korrekt implementering, följ den här uppdateringen

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. Deserialisering av MongoDB BSON

  2. Så här gör du:Hantera HBase-data via Hue

  3. Hur man gör anpassad mappning med mongo-kontakt med elasticsearch

  4. Så här tar du emot Redis-publiceringsmeddelande i Go