多个参数设置为true的updateOne在mongodb 3.6.1中不起作用

时间:2020-06-01 21:14:00

标签: mongodb

我们已升级到运行Mongo 3.6.18的新数据库,并且现有代码已停止工作。

(经过无数小时的灵魂搜索和咬指甲……),我将其追溯到以下代码:

    $this->st_manager->update_record(
                    [
                        'user_id'       => $driverId,
                        'Display_lng'   => $item['lng'], 
                        'Display_lat'   => $item['lat'],
                    ], [
                        '$set' => $update_params,
                    ], [
                        'upsert'        => false,
                        'multiple'      => true,
                    ]
                );

我的update_record代码就是这样:

    public function update_record( $findquery, $newdata, $option ) {
    $this->collection->updateOne( $findquery, $newdata, $option );
}

1 个答案:

答案 0 :(得分:1)

.updateOne()没有multiple选项,因为它仅用于更新一个文档。

如果要更新多个文档,请使用.updateMany()

请注意,.updateMany()不需要传递选项multiple(并且不接受),因为它已经打算更新多个文档。