在webman中使用jenssegers/mongodb
包,如果集合中已經(jīng)存在相同的數(shù)據(jù),再插入相同數(shù)據(jù)就會報錯。請問有其他的方法可以批量插入嗎?
偽代碼類似,其中number+user_id是復(fù)合唯一索引:
$data = [
[
'number' => '22215800138000',
'user_id' => 33,
'remarks' => 1
],
[
'number' => '22215800138000',
'user_id' => 33,
'remarks' => 1
]
];
User::query()->insert($data); //會報錯This database engine does not support inserting while ignoring errors.
查詢了jenssegers/mongodb
的文檔,發(fā)現(xiàn)并沒有針對數(shù)據(jù)的批量處理,例如在mysql中使用upsert() insertOrIngnore()等類型的方法
查詢了mongodb手冊發(fā)現(xiàn),insertMany()可以增加參數(shù)ordered:false來使批量插入遇到唯一索引錯誤時,忽略此條,繼續(xù)插入。但是jenssegers/mongodb
包中未發(fā)現(xiàn)這類的寫法