2016-04-29 16 views
0

Ich habe ein Array in meinem Dokument, das ich aktualisieren möchte, aber bis jetzt konnte ich es nicht lösen. Hier doctor ist der Name der Sammlung, es ist kein Objekt.Update funktioniert nicht in MongoDB

doctor: { 
    _id = ObjectID(571fb65678fcd63c29db423a), 
    appointmentList : [ 
    {patientID:"123", date: "25 MARCH"}, 
    {patientID:"456", date: "26 MARCH"}, 
    {patientID:"789", date: "27 MARCH"}, 
    {patientID:"101112", date: "28 MARCH"}  
    ] 
} 

In diesem Fall möchte ich das Datum für eine Patienten_ID = "123" aktualisieren. Dazu habe ich diese Abfrage erstellt, aber diese nicht funktioniert

db.collection.update(
    { 
     "_id" : ObjectId("571fb65678fcd63c29db423a"), 
     "appointmentList.patientID": "123" 
    }, 
    { 
     "$set": { 
      "appointmentList.$.date" : "XXXXX" 
     } 
    } 
); 

OUTPUT:

> db.collection.update(
    { 
     "_id" : ObjectId("571fb65678fcd63c29db423a"), 
     "appointmentList.patientID": "123" 
    }, 
    { 
     "$set": { 
      "appointmentList.$.date" : "XXXXX" 
     } 
    } 
); 
WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 }) 

Mit freundlichen Grüßen

Antwort

-1
diese

Versuchen:

> db.collection.update(
{ 
    "_id" : "571fb65678fcd63c29db423a", 
    "appointmentList.patientID": "123" 
}, 
{ 
    "$set": { 
     "appointmentList.$.date" : "XXXXX" 
    } 
} 

);

+0

funktioniert nicht .... – user2498079

+0

Ich habe versucht, Ihren Code auf meiner Maschine, und es hat gut funktioniert. Versuchen Sie vielleicht, mongodb neu zu starten? Oder aktualisieren es ?? Coz der Code, den Sie ausführen, ist gültig, vielleicht eine Fehlkonfiguration oder etwas ähnliches. Aber der Code ist gültig. Viel Glück! – Robert