sql >> Databáze >  >> NoSQL >> MongoDB

Nelze aktualizovat data v mongodb

Vaše aktualizace update prohlášení je nesprávné, obsahuje nesprávně umístěné argumenty – vkládáte více $set operace a možnosti jako různé parametry metody aktualizace; měly by být pod samostatnými určenými parametry aktualizace. Správná syntaxe Node.js je:

update(selector, document, options, callback)

kde selector je objekt, který je selektorem/dotazem pro operaci aktualizace, document je také objekt, který je aktualizačním dokumentem a konečně options objekt, který je ve výchozím nastavení null a má volitelná nastavení aktualizace.

Tady to děláte

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

Ve kterém mongo aktualizuje kolekci pomocí prvních dvou parametrů jako správné a přirozeně vyvolá chybu

protože jste zadali příliš mnoho nesprávných parametrů.

Také jste nesprávně použili polohový operátor. Měl by být součástí dokumentu, který má být aktualizován, nikoli v dotazu.

Pro správnou implementaci postupujte podle této aktualizace

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. Hluboký klon dokumentu s vloženými asociacemi

  2. Nelze spustit sadu replik MongoDB:různé chyby

  3. Najděte všechny duplicitní dokumenty v kolekci MongoDB podle klíčového pole

  4. MongoError write EPIPE” v instalaci Parse-Server