sql >> Database >  >> NoSQL >> MongoDB

Kan de gegevens in mongodb niet bijwerken

Uw update verklaring is onjuist, het heeft verkeerd geplaatste argumenten - u plaatst meerdere $set bewerkingen en opties als verschillende parameters voor de updatemethode; ze moeten onder afzonderlijke aangewezen updateparameters staan. De juiste Node.js syntaxis is:

update(selector, document, options, callback)

waar selector is een object dat de selector/query is voor de update-bewerking, document is ook een object dat het updatedocument is en tot slot een options object dat standaard null is en de optionele update-instellingen heeft.

Hier ben je aan het doen

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

Waarin mongo de verzameling bijwerkt met de eerste twee parameters als correct en het natuurlijk de fout geeft

omdat u te veel onjuiste parameters heeft opgegeven.

U hebt ook een onjuist gebruik van de positionele operator. Het moet deel uitmaken van het document dat moet worden bijgewerkt, niet in de zoekopdracht.

Volg deze update voor de juiste implementatie

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. Uitzondering voor het gebruik van mongodb als infinispan-cacheopslag

  2. Leidt elke aanroep binnen een multi()-aanroep in phpredis tot een nieuwe netwerkrondreis naar redis?

  3. Moet ik de optie allowDiskUse gebruiken in een productomgeving?

  4. Mongo-aggregatie met gepagineerde gegevens en totalen