因此,mongo在代码11000或11001上引发诸如以下的错误消息:

{ [MongoError: E11000 duplicate key error index: mean-dev.users.$username_1  dup key: { : "asdasd" }]
  name: 'MongoError',
  err: 'E11000 duplicate key error index: mean-dev.users.$username_1  dup key: { : "asdasd" }',
  code: 11000,
  n: 0,
  connectionId: 718,
  ok: 1 }

现在,我正在解析错误消息,以检索哪个字段具有重复的 key ,这是非常脏的。即:我不想测试不同索引(多键,复合键等)上的所有重复错误,以查看此解析器是否仍然有效。

我可以使用Node中的任何帮助程序,让我稳健地检索此类错误的违规字段吗?

最佳答案

如果要查看索引的实际键,而不是解析不可靠的字符串,则可以简单地查询system.indexes集合,如下所示:

db.collection('system.indexes').findOne({ ns: 'mean-dev.users', name: 'username_1' }, cb);

这将导致包含 key 对象的文档中列出组成该索引关键字的所有字段名称,例如:
{
  v: 1,
  ns: 'mean-dev.users',
  name: 'username_1',
  key: {
    username: 1
  }
}

关于node.js - 在Mongo中稳健地检索哪个字段引起了 'duplicate key error'的注意,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20890057/

10-16 21:22