Php Can';在mongoDB中找不到合适的标准来更新文档
我遵循了mongoDB中存储的模型:Php Can';在mongoDB中找不到合适的标准来更新文档,php,mongodb,Php,Mongodb,我遵循了mongoDB中存储的模型: { "_id" : "some_table_name", "content" : [{ "id" : "1", "locname" : "KKH" }, { "id" : "2", "locname" : "Singapore National Eye Centre" }] } 我试图找到更新第二个元素(id=2)的条件,也就是添加新字符串 “新元素”:“foo” 因此,新的观点应该是: { "_id" : "some_ta
{
"_id" : "some_table_name",
"content" : [{
"id" : "1",
"locname" : "KKH"
}, {
"id" : "2",
"locname" : "Singapore National Eye Centre"
}]
}
我试图找到更新第二个元素(id=2)的条件,也就是添加新字符串
“新元素”:“foo”
因此,新的观点应该是:
{
"_id" : "some_table_name",
"content" : [{
"id" : "1",
"locname" : "KKH"
}, {
"id" : "2",
"locname" : "Singapore National Eye Centre"
"new_element" : "foo"
}]
}
表单PHP
当我尝试按id查找第二个节点时,我使用:
$array = $collection_bios2->findOne(
array("_id" => "some_table_name", "content.id" => "2"),
array("_id" => 0, "content.$" => 1)
);
但当我尝试更新它时,新节点在content
下进入:
$newdata = array('$set' => array("new_element" => "foo"));
$collection_bios2->update(
array("_id" => "some_table_name", "content.id" => "2"),
$newdata
);
我得到:
{
"_id" : "some_table_name",
"content" : [{
"id" : "1",
"locname" : "KKH"
}, {
"id" : "2",
"locname" : "Singapore National Eye Centre"
}],
"new_element" : "foo"
}
我的实现有什么问题
求求你,救命
Maxim您需要在此处使用位置运算符:
array('$set'=>array('content.$.new_element':'foo'))
您可以在此处阅读更多信息:您需要像这样使用位置运算符:
array(“$set”=>array('content.$.new\u element':'foo'))
太好了!请把它贴在答题纸上,让我投票