我试图让upstart工作,但没有得到任何结果
我在这个脚本之前发布了三个变量。如果我更新,我会得到结果,但我想追加销售,但没有得到结果。
这是我的代码:
if(isset($_POST)){
if($array){
$doc = $collection->update(
array(
'$set' => array(
'_id' => new MongoId(),
'organization' => $mysql_org_name,
'purch_code' => $mysql_purch_code,
'contentname' => $mysql_order_item_name,
array('upsert' => true)
)
)
);
}
}
Update需要3个参数数组。你只通过了一次。
首先,您已经将选项作为$set
数组的一部分。它们应该作为一个单独的参数在update子句之后传递。
此外,您没有匹配条件(即,用于选择要更新的项目的查询语句)。当使用upstart和$set
时,将使用两个数组中的字段创建一个新项(请参阅相关文档)。
最后,如果您没有为_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
字段会在第一个匹配对象上更新(要更新多个条目,您必须在选项数组中指定'multiple'=>true
)。如果没有匹配项,将插入一个新条目:
- A生成的
_id
- 所有匹配标准值(即
organization
) - 所有更新运算符值(即
purch_code
和contentname
)
您在单引号上设置了变量$'$set'=>数组(