mongodb中的多文档更新问题

mongodb中的多文档更新问题,mongodb,mongodb-php,Mongodb,Mongodb Php,如果选择器(第一个参数)在集合中选择多个文档,MongoDB是否支持多文档更新 在下面的示例中,第一个可以正常工作,因为它只选择一个特定的文档并修改zip值 在第二种情况下,collection$addresses有多个文档,其中包含“home”=>“canada”,但它不会更新任何内容 有人能帮我吗 $addresses->update(array('_id' => new MongoId('4f69de380c211d6c21000001')), a

如果选择器(第一个参数)在集合中选择多个文档,MongoDB是否支持多文档更新

在下面的示例中,第一个可以正常工作,因为它只选择一个特定的文档并修改zip值

在第二种情况下,collection$addresses有多个文档,其中包含“home”=>“canada”,但它不会更新任何内容

有人能帮我吗

$addresses->update(array('_id' => new MongoId('4f69de380c211d6c21000001')),
               array('$set' => array('zip' => 20)));

$addresses->update(array('home' => 'canada')),
               array('$set' => array('zip' => 20)));
编辑:

等效javascript命令

db.addresses.update({home: "canada"}, {$set: {zip: 20}})
更新遇到的第一个匹配项的zip值,这是否为预期行为


console命令正在更新至少一个文档,如果选择器匹配多个文档,PHP不会执行任何操作。

只要第二条语句匹配任何内容,它就应该始终更新单个文档

如果要将其应用于多个文档,则应按照此处的说明传入多个标志

在您的情况下,查询应为:

$addresses->update(array('home' => 'canada'),
           array('$set' => array('zip' => 20)),
           array('multiple' => true)
);

这是一个语法错误“canada”),而不是“canada”),。非常感谢你的好书。我刚开始读书。