如何执行批量插入并在重复键错误的情况下继续?
我有一个集合,在id字段上有一个唯一的索引(不是 _id),里面有一些数据.然后我获得更多数据,我想只将非现有文档添加到集合中.
我有以下代码:
let opts = {
continueOnError: true, // Neither
ContinueOnError: true, // of
keepGoing: true, // this
KeepGoing: true, // works
};
let bulk = collection.initializeUnorderedBulkOp( opts );
bulk.insert( d1 );
bulk.insert( d2 );
bulk.insert( d3 );
...
bulk.insert( dN );
let result = yield bulk.execute( opts ); // this keep throwing duplicate key error
Run Code Online (Sandbox Code Playgroud)
我只是想忽略错误,让批量完成所有排队的操作.
我搜索了npm模块api和MongoDB api中的Bulk,initializeUnorderedBulkOp和Bulk写的文档没有运气.
同样在无序操作的文档中,他们说:
错误处理
如果在处理其中一个写操作期间发生错误,MongoDB将继续处理列表中的剩余写操作. …
设置时,我有divs(混合空或文本)的对齐问题display: inline-block.有关示例,请参见下图:
正如你所看到的那样,div带有文本的s在某种程度上与其他divs 不对齐.请参阅此 JSFiddle以获取我的问题的工作示例.
我已经知道解决这个问题的一些方法,但我想了解它为什么会发生.我的目标是用最少的CSS更改来解决这个问题(可能没有HTML修改).
HTML
<div class="bar">
<div class="actors">
<div class="actor" style="background-image: url('http://lorempixel.com/32/32/')"></div>
<div class="actor" style="background-image: url('http://lorempixel.com/32/32/')"></div>
<div class="actor num"><span>5</span></div>
<div class="actor" style="background-image: url('http://lorempixel.com/32/32/')"></div>
<div class="actor num"><div>6</div></div>
</div>
<div class="lol">lol</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.bar {
height: 40px;
border-bottom: 1px solid #000;
}
.actors {
float: left;
}
.actor {
display: inline-block;
width: 34px;
height: 34px;
background-color: gray;
border-radius: 16px;
border: 1px solid red;
}
.num {
}
.lol {
float: …Run Code Online (Sandbox Code Playgroud) 我使用普通的 Javascript 来创建一个类并使用 JSDoc 记录它,我使用 typescript 进行类型检查。
但是我无法弄清楚如何正确编写 JSDoc 以便它使用符号识别字段访问。
const secret = Symbol('secret');
class MyClass {
constructor() {
/** @type {Map<string,number>} */
this[secret] = new Map();
}
method() {
const map = this[secret];
// Should give an error in the following line since 1 is not a string
map.set(1, '2');
}
}
Run Code Online (Sandbox Code Playgroud)
我从 VSCode 得到的结果如下(你可以看到 map 有 type any):

在 TypeScript 中很容易使它工作,只需像任何其他类属性一样声明它。
const secret = Symbol('secret');
class MyClass {
[secret]: Map<string, number>; // Declared here
constructor() {
this[secret] …Run Code Online (Sandbox Code Playgroud) javascript ×2
bulkinsert ×1
css ×1
css3 ×1
display ×1
html ×1
jsdoc ×1
mongodb ×1
node.js ×1
npm ×1
typescript ×1