小编Vol*_*lox的帖子

避免mongodb批量插入重复键错误

如何执行批量插入并在重复键错误的情况下继续?

我有一个集合,在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,initializeUnorderedBulkOpBulk写的文档没有运气.


同样在无序操作的文档中,他们:

错误处理

如果在处理其中一个写操作期间发生错误,MongoDB将继续处理列表中的剩余写操作. …

javascript bulkinsert mongodb node.js npm

11
推荐指数
2
解决办法
6547
查看次数

CSS inline-block wrap问题,混合文本和空div

设置时,我有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)

html css css3 display

5
推荐指数
1
解决办法
339
查看次数

如何使用 JSDoc 记录符号索引签名以符合打字稿?

我使用普通的 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): VSCode 结果

在 TypeScript 中很容易使它工作,只需像任何其他类属性一样声明它。

const secret = Symbol('secret');
class MyClass {
  [secret]: Map<string, number>; // Declared here
  constructor() {
    this[secret] …
Run Code Online (Sandbox Code Playgroud)

javascript jsdoc typescript visual-studio-code

5
推荐指数
1
解决办法
405
查看次数