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
参数)?