在 mongodb 中的另一个数组内的数组内添加文档

Add a document inside an array that is inside another array in mongodb

首先我给你一个简单的输出:

{
    "_id" : ObjectId("6016fcca3a406de622cfdc8f"),
    "pfname" : "charbel",
    "plname" : "alam",
    "address" : "Baskinta",
    "gender" : "Male",
    "phone" : "",
    "age" : "22",
    "addmissions" : [
            {
                    "sickness" : "diabete",
                    "arrival_date" : "13-1-2021",
                    "payments" : [ ]
            }
    ],
    "consultations" : [ ]

}

我是 MongoDB 的新手并且 我想在“addmissions”数组

中的数组“payments”中添加一个文档

我一直在尝试这个命令:

db.patients.update( {"pfname":"charbel"}, {$set:{"addmissions": {"sickness":"diabete","arrival_date":"13-1-2021", {$push:{"payments":{"medicaments":[],"surgeries":[],"total_price":"100000","amount_paid":"60000","amount_left":"40000"}}} }} });

但我收到以下错误: 未捕获的异常:语法错误:预期 属性 名称,得到 '{' :

我也试过这样的:

 db.patients.update({"pfname"
    :"charbel"},{$push:{addmissions.payments:{"medicaments":[],"surgeries":[],"total_price":"100000","amount_paid":"60000","amount_left":"40000"}}})

它给我这个错误: 未捕获的异常:SyntaxError: missing : after 属性 id :

我也想在 medicaments 数组中添加一条记录 我正在尝试这个查询:

db.patients.update({
"pfname":"charbel",
    "addmissions.sickness":"diabete",
        "addmissions.arrival_date":"13-1-2021",
        "addmissions.payments.total_price":"100000",
        "addmissions.payments.amount_paid":"60000",
        "addmissions.payments.amount_left":"40000"
        },{$push:{"addmissions.$.payments.medicaments":{"medname":"panadol","medprice":"30000"}}})



But it is giving me this error:
                "errms

g" : "无法在元素 {payments: [ { medicaments: [], surgeries: [], total_price: "100000", amount_paid 中创建字段 'medicaments': "60000", amount_left: "40000" } ]}"

试试这个。

db.collection.update(
   <query>,
   <update>
);

query: 更新的选择标准。如果您打算更新单个文档,请确保这些条件是唯一的。

更新: 要应用的修改。这里我们使用 点符号 来访问 admissions 数组的元素并访问 comments 字段。

db.collection.update({
  "pfname": "charbel",
  "addmissions.sickness": "diabete",
  "addmissions.arrival_date": "13-1-2021"
},
{
  $push: {
    "addmissions.$.payments": {
      "medicaments": [],
      "surgeries": [],
      "total_price": "100000",
      "amount_paid": "60000",
      "amount_left": "40000"
    }
  }
})