更新在MongoDB中不起作用

更新在MongoDB中不起作用,mongodb,nosql,Mongodb,Nosql,我的文档中有一个数组,我想更新它,但到目前为止我无法解析它。这里doctor是集合的名称,它不是对象 doctor: { _id = ObjectID(571fb65678fcd63c29db423a), appointmentList : [ {patientID:"123", date: "25 MARCH"}, {patientID:"456", date: "26 MARCH"}, {patientID:"789", date: "27 MARCH"}

我的文档中有一个数组,我想更新它,但到目前为止我无法解析它。这里
doctor
是集合的名称,它不是对象

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"}    
   ]
}
在这种情况下,我想更新patientID=“123”的日期。为此,我创建了这个查询,但它不起作用

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

> db.collection.update(
    { 
        "_id" : ObjectId("571fb65678fcd63c29db423a"),
        "appointmentList.patientID": "123" 
    }, 
    { 
        "$set": { 
            "appointmentList.$.date" : "XXXXX"
        }
    } 
);
WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })
致以最诚挚的问候

试试这个:

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

))

我在我的机器上试过你的代码,效果很好。试着重新启动mongodb?或者更新它??因为您运行的代码是有效的,可能是一些错误配置或类似的东西。但是代码是有效的。祝你好运