我正试图让人工作并且没有结果
我在此脚本之前发布了三个变量。如果我更新,我得到结果,但我想要upsert并且没有结果。
这是我的代码:
Var 1: c | Var 2: 2 | Var 3: d
Var 1: e | Var 2: 3 | Var 3: f
Var 1: g | Var 2: 4 | Var 3: h
答案 0 :(得分:1)
您在单引号上设置了变量$ ' $设置' =>阵列(
答案 1 :(得分:1)
Update expects 3 argument arrays。你只通过了一个。
首先,您已将选项作为$set
数组的一部分包含在内。它们应该在update子句之后作为单独的参数传递。
此外,您没有匹配条件(即,查询语句以选择要更新的项目)。使用upsert和$set
时,将使用两个数组(see the relevant documentation)中的字段创建一个新项目。
最后,如果您没有为_id
指定值,Mongo会为您生成一个。
例如,如果您想根据organization
字段进行匹配:
if(isset($_POST)){
if($array){
$doc = $collection->update(
array('organization' => $mysql_org_name),
array(
'$set' => array(
'purch_code' => $mysql_purch_code,
'contentname' => $mysql_order_item_name,
)
),
array('upsert' => true)
);
}
}
如果匹配一个或多个条目,则只会在第一个匹配对象上更新purch_code
和contentname
字段(要更新多个条目,您必须指定{{1在您的选项数组中)。如果没有匹配,将插入一个新条目:
'multiple'=>true
_id
)organization
和purch_code
)