使用PHP代码更新MongoDB子文档

使用PHP代码更新MongoDB子文档,php,mongodb,Php,Mongodb,我试图在PHP代码中创建mongoDB子文档记录 { "_id": "", "ref": [ { "crm_base_contact_id": "1653", "crm_imported_files_id": "906" } ], "data": [ { "First_name": "Annalee", "Last_name":

我试图在PHP代码中创建mongoDB子文档记录

{
    "_id": "",
    "ref": [
        {
          "crm_base_contact_id": "1653",
          "crm_imported_files_id": "906"
        }
    ],
    "data": [
        {
            "First_name": "Annalee",
            "Last_name": "Graleski",
        },
        {
            "First_name": "Henry",
            "Last_name": "Smith",
        }
    ],
}
如何在php代码中的“数据”子文档中创建两个数组。
请告诉我如何使用PHP代码将其插入mongoDB,

您可以在更新文档时使用$set操作符添加其他字段:

{
    "_id": "",
    "ref": [
        {
          "crm_base_contact_id": "1653",
          "crm_imported_files_id": "906"
        }
    ],
    "data": [
        {
            "First_name": "Annalee",
            "Last_name": "Graleski",
        },
        {
            "First_name": "Henry",
            "Last_name": "Smith",
        }
    ],
}
db.collection.update({},{“$set”:{“history”:“value”})
如果您希望该字段是数组或子文档,则该字段与此相同:

db.collection.update({},{“$set”:{“history”:[“a”,“b”,“c”]})
如果您正在努力将JSON语法转换为php代码,那么以下内容将在将来对您有所帮助:

$result='{“$set”:{“history”:[“a”、“b”、“c”]}};
echo var_dump(json_解码($result));
$test=array('$set'=>array('history'=>array('a','b','c'));
echo json_编码($test)。“\n”

因此,第一行只是解码json,并将转储它应该是什么样子。如果您不确定,请对php数组声明进行json_编码,以确保其正确性。

请澄清,您是要创建一个与所显示内容类似的文档,还是要向文档中的
数据
字段添加额外的元素。@NeilLunn我想再添加一个子文档“历史记录”在php代码中使用update语句仍然不是很清楚。您希望在顶层再添加一个项目“历史记录”,即(_id,ref,data,history),还是希望在数据中的项目中添加“历史记录”,即每个项目(名字,姓氏,history),即(_id,ref,data,history),如下所示