在使用MongoDB的PHP中,在一次更新中使用多个修饰符操作?

在使用MongoDB的PHP中,在一次更新中使用多个修饰符操作?,php,mongodb,Php,Mongodb,在使用MongoDB的PHP中,是否可以在一次更新中使用多模块修饰符操作 例如,如果我创建了以下文档: $doc = array( 'one' => 1, 'tags' => array(), ); 然后要添加另一个字段(“new”)并向“tags”数组添加一个元素,我可以使用以下两行: $collection->update(array('_id'=>$doc['_id']), array('$set' => array('new'=>'value')))

在使用MongoDB的PHP中,是否可以在一次更新中使用多模块修饰符操作

例如,如果我创建了以下文档:

$doc = array(
'one' => 1,
'tags' => array(),
);
然后要添加另一个字段(“new”)并向“tags”数组添加一个元素,我可以使用以下两行:

$collection->update(array('_id'=>$doc['_id']), array('$set' => array('new'=>'value')));

有人知道可以在一个“更新”命令中执行这两个操作吗

谢谢,
Neil

我已经有一段时间没有使用mongo了,但我相信您应该能够:

$collection->update(array('_id'=>$doc['_id']), array(
    '$set' => array('new'=>'value'),
    '$addToSet' => array('tags'=>'my tag')
));

你试过了吗?结果是什么?要添加到这一点,您肯定可以在一个命令中包含多个特殊命令。但是,如果命令是以编程方式生成的,则必须小心在同一字段上发出多个命令,因为这可能会导致一些问题。
$collection->update(array('_id'=>$doc['_id']), array(
    '$set' => array('new'=>'value'),
    '$addToSet' => array('tags'=>'my tag')
));