Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Node.js couchDB在使用_bulk_docs为大插入提供自己的ID时发生冲突_Node.js_Couchdb_Es6 Promise_Axios - Fatal编程技术网

Node.js couchDB在使用_bulk_docs为大插入提供自己的ID时发生冲突

Node.js couchDB在使用_bulk_docs为大插入提供自己的ID时发生冲突,node.js,couchdb,es6-promise,axios,Node.js,Couchdb,Es6 Promise,Axios,当coach自动生成UUID时,同样的代码也可以正常工作。我从一个新的完全空的数据库开始,但我一直得到这个 error: conflict reason: Document update conflict 重申一下,我正在将新文档发布到一个空数据库中,因此不确定在没有更新任何内容时如何获得更新冲突。更奇怪的是,在DB中仍然会出现冲突文档,只有一次修订,但总体上缺少记录 我正在尝试插入大约38000条记录,其中包含100个批量文档。我从RETS服务器获取这些记录(一次100条),每条记录都有一

当coach自动生成UUID时,同样的代码也可以正常工作。我从一个新的完全空的数据库开始,但我一直得到这个

error: conflict 
reason: Document update conflict
重申一下,我正在将新文档发布到一个空数据库中,因此不确定在没有更新任何内容时如何获得更新冲突。更奇怪的是,在DB中仍然会出现冲突文档,只有一次修订,但总体上缺少记录

我正在尝试插入大约38000条记录,其中包含100个批量文档。我从RETS服务器获取这些记录(一次100条),每条记录都有一个唯一的ID,我想用它作为couchDB_ID,而不是它们的UUID。我正在使用一个基于承诺的库来获取这些记录,并使用axios将它们插入沙发。在获得第一批100条记录后,我运行此代码,在插入之前为100条记录中的每一条添加一个_id

let batch = [];
batch = records.results.map((listing) => {
     let temp = listing;
     temp._id = listing.ListingKey;
     return temp;
});
然后插入:

axios.post('http://127.0.0.1:5984/rets_store/_bulk_docs', { docs: batch })
这都是我递归调用的函数的内部

我知道这可能不足以说明问题,但我想我从这里开始。我确信这与我的map()和添加_id=ListingKey有关


谢谢

您的
map
看起来不错,最好的猜测是您的
记录。由于某种原因,
结果在不同批次中重叠。@smathy是的,我想我可能正在快速地使用大量插入来敲打couchdb。我从批量文档改为循环遍历每条记录,一次插入一条,但得到的结果相同。此外,有冲突的记录是100%随机的,而且从不相同。你知道axios和/或Coach是否能够处理这么多记录,如果不能,插入批量数据的标准方式是什么吗?这些不是服务器过载的症状。我的意思不是时间上的重叠,这对Coach来说不是问题,我的意思是ID上的重叠。就像同一个
列表。ListingKey
被分为两个独立的批次。这就是我不明白为什么的问题。我重写了函数,这样它就可以在批处理中循环添加_id并逐个插入它们,但我仍然有相同的问题。当控制台记录循环以显示添加时的_id,然后在axios.post()中记录另一个日志(所有日志都在循环的一次迭代中)时,它会吐出一行中的所有id,然后是之后的所有“完成”?我假设这与我的承诺处理有关,我想我必须重写这个问题,因为我甚至不知道我在问什么。哈哈…在打印出来的内容中,你看不到一个已经在你的循环中打印出来的ID吗?