Php MongoDB保存和更新数组元素

Php MongoDB保存和更新数组元素,php,mongodb,Php,Mongodb,我保存了这个当前值 db.mycol.save({name:'elbren',lastname:'antonio',subjects:{}}) 结果: "_id" : ObjectId("576db356332a8fc87bf769be"), "name" : "elbren", "lastname" : "antonio", "subjects" : { } 我需要的是这个结果: "_id" : ObjectId("576db356332a8fc87bf769be"), "name" :

我保存了这个当前值

db.mycol.save({name:'elbren',lastname:'antonio',subjects:{}})
结果:

"_id" : ObjectId("576db356332a8fc87bf769be"),
"name" : "elbren",
"lastname" : "antonio",
"subjects" : {

}
我需要的是这个结果:

"_id" : ObjectId("576db356332a8fc87bf769be"),
"name" : "elbren",
"lastname" : "antonio",
"subjects" : 
{
    {
         code: "sub1",
         Description: "desc1",
         Unit: 3
     },
     code: "sub2",
     Description: "desc2",
     Unit: 3

}

关于这一点,最好的做法是我想将主题添加到该_id?

要创建文档以便获得理想的结果,只需直接编写:

db.mycol.save({name:'elbren',lastname:'antonio',subjects:{
    {
        code: "sub1",
        Description: "desc1",
        Unit: 3
    },
    code: "sub2",
    Description: "desc2",
    Unit: 3
}})
如果要更改(“修复”)现有文档,必须使用
update

db.mycol.update(
    { name : "elbren", lastname : "antonio" },
    { $set: { subjects:{
                  {
                      code: "sub1",
                      Description: "desc1",
                      Unit: 3
                  },
                  code: "sub2",
                  Description: "desc2",
                  Unit: 3
              }
    }}
);
这里的
{name:“elbren”,lastname:“antonio”}
是一个与所需文档匹配的查询,第二部分是。

使用“$push”操作符将数组添加到当前对象

// in php e.g:
['$push'=>['fild_value'=>array('mail=>'me@mail.com','tag'=>'personal')]]
更多结果如下:

{
   "_id": 12345678,
   "fild_value": [
        {
        "mail":"me@mail.com",
        "tag":"personal"
         },
         {
          "mail":"job@mail.com",
          "tag":"worker"
          }
      ]
 }

MongoDB提供阵列操作符($push/$pull、$addToSet、$elemMatch等)

请澄清您的问题。是否要更新已保存的文档?或者只是“正确”地创建它,以便获得第二个结果而不是第一个结果(这意味着您需要知道如何更改
save
参数)?