Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 忽略updateMany()中的错误,如ordered:false_Mongodb - Fatal编程技术网

Mongodb 忽略updateMany()中的错误,如ordered:false

Mongodb 忽略updateMany()中的错误,如ordered:false,mongodb,Mongodb,我的MongoDB中有大约500k条记录,我必须用一个标志更新每个文档 我的问题是这样的: db.table.updateMany( {}, { $set: { my_custom_flag: 1 } } ); 但是很少有超过16MB的文档,由于MongoDB 16MB的限制,我无法更新这些文档 上述查询引发错误,并中断整个操作,即无法更新其余文档 是否有任何方法可以抑制错误并继续操作?或者我得到超过16MB的文档的文档id { "

我的MongoDB中有大约500k条记录,我必须用一个标志更新每个文档

我的问题是这样的:

db.table.updateMany(
  {}, 
  {
      $set: {
        my_custom_flag: 1
      }
   }
);
但是很少有超过16MB的文档,由于MongoDB 16MB的限制,我无法更新这些文档

上述查询引发错误,并中断整个操作,即无法更新其余文档

是否有任何方法可以抑制错误并继续操作?或者我得到超过16MB的文档的文档id

{
   "message": "Resulting document after update is larger than 16777216",
   "name": "WriteError",
   "code": 17419,
   "index": 0,
   "errmsg": "Resulting document after update is larger than 16777216"
}
EDIT:
bulkWrite()
ordered:false
一起使用时仍会抛出相同的错误,其他文档不会更新。 我不明白为什么这个问题被标记为重复


注意:我不希望使用GridFS的。这是所有语言API的共同点。事实上,“everything”实际上使用的是“BulkAPI”,设置的实际位置是。我尝试用bulkWrite()实现这一点,但我的操作仍然在16MB错误处中断。有解决方案吗?我遇到了类似的问题,尝试使用insert_many插入并将ORDERSED设置为False,但仍然得到BSON doc太大的错误。否则我可能会遍历单个文档,因为这不是一个常规操作。嗨,达伦,我从来没有找到解决这个问题的方法。相反,我创建了一个for循环,首先获取该特定集合的所有
\u id
。然后为每个
\u id
db.table.bulkWrite([{updateOne:{filter:{{u id:1},update:{my_custom_flag:1}}},{updateOne:{…},{…},{…},{…},{ordered:false})编写一个更新命令使用
ordered:false
帮助我在不中断循环的情况下进行更新