在webman中使用jenssegers/mongodb
包,如果集合中已经存在相同的数据,再插入相同数据就会报错。请问有其他的方法可以批量插入吗?
伪代码类似,其中number+user_id是复合唯一索引:
$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
的文档,发现并没有针对数据的批量处理,例如在mysql中使用upsert() insertOrIngnore()等类型的方法
查询了mongodb手册发现,insertMany()可以增加参数ordered:false来使批量插入遇到唯一索引错误时,忽略此条,继续插入。但是jenssegers/mongodb
包中未发现这类的写法