Mongo DB、PHP在文档中添加或更新字段
我有以下文件:Mongo DB、PHP在文档中添加或更新字段,php,mongodb,Php,Mongodb,我有以下文件: { "_id": ObjectId("5241f1d79b7e7aed05000000"), "description": { "nl": "Hallo", "en": "Hello" }, "name": "Marc" } 现在我需要更新以更新一个现有字段或向描述中添加新字段。在php中,我使用Mongo的更新函数和以下代码: $new_data = array( '$set' => array( "descr
{
"_id": ObjectId("5241f1d79b7e7aed05000000"),
"description": {
"nl": "Hallo",
"en": "Hello"
},
"name": "Marc"
}
现在我需要更新以更新一个现有字段或向描述中添加新字段。在php中,我使用Mongo的更新函数和以下代码:
$new_data = array(
'$set' => array(
"description" => array(
"de" => "hallo"
)
)
);
它所做的是删除所有其他字段,只插入“de”字段。我尝试用$push替换$set(我认为这是为这个而做的),但是没有结果,$setOnInsert也没有做任何事情
如何解决此问题,以便添加新字段(如果不存在)或更新(如果存在)
谢谢让你的更新像
{$set: {"description.de": "hello"}}
我猜在你的代码中应该是:
$new_data = array(
'$set' => array(
"description.de" => "hallo"
)
);
让你的更新像
{$set: {"description.de": "hello"}}
我猜在你的代码中应该是:
$new_data = array(
'$set' => array(
"description.de" => "hallo"
)
);
在更新之前,还要在描述中添加$new_data中的先前记录,因为从逻辑上来说,您正在更新文件数据,这有一定的意义,但这意味着在某些情况下,我需要在未更新的帖子中发送23个额外字段。没有其他方法?您可以添加更多字段,但在您的案例中,说明是数组,在更新之前,您将用其他值替换。此外,还可以在说明中添加$new_data中的先前记录,因为从逻辑上讲,您正在更新有意义的文件数据,但这意味着在某些情况下,我需要在帖子中发送23个未更新的额外字段。没有其他方法吗?您可以添加更多字段,但在您的示例中,描述是数组,您将用其他值替换