yiisoft/yii2-mongodb README告诉我们,我们可以使用以下代码将数据插入mongodb:
$collection = Yii::$app->mongodb->getCollection('somecollection');
$collection->insert($data_array);
但是如果我们多次插入相同的 _id ,我们将获得重复的异常。据我所知,在mongo中你应该用“upsert:true”更新数据(如this book中所述)。如何使用 yii2-mongo 组件编写它?感谢
答案 0 :(得分:1)
https://github.com/yiisoft/yii2-mongodb/blob/cfb60d5d6dedd80f2bb9ee1f13a3edb906d920ef/Session.php
这是repo库中upsert的唯一引用。看起来writeSession()
会自动设置upsert。 IIRC upsert尝试更新,如果失败则插入INSERT。我不熟悉图书馆亲自尝试
$collection->update($data_array);
但老实说,我只是对回购的操作嗤之以鼻。
答案 1 :(得分:1)
您可以使用" updateAll"
$options = ['upsert' => true];
YourMongodbModel::updateAll($attributes, $condition, $options);