我正在尝试上调工作,但没有结果
我要在此脚本之前发布三个变量。如果更新,我会得到结果,但是我想更新,却没有结果。
这是我的代码:
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)
)
)
);
}
}
更新需要3个参数数组。您只通过了一个。
首先,您已将选项包括在$set
数组中。应该在update子句之后将它们作为单独的参数传递。
另外,您没有匹配条件(例如,查询语句以选择要更新的项目)。当使用upsert和时$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
在options数组中指定)。如果没有匹配项,将插入一个新条目,其中包含:
_id
organization
)purch_code
和contentname
)本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句