通过mongodb本机驱动程序创建唯一索引

时间:2017-12-22 19:53:16

标签: node.js mongodb

有一个代码:

const { MongoClient } = require('mongodb')

const db = MongoClient.connect('mongodb://172.17.0.2:27017/test')
db
  .then(
    async dataBase => {
      eduDb = dataBase.db('edu-service-accounts')
      const accounts = eduDb.collection('accounts')
      await accounts.createIndex({ email: 1 }, { unique: true })
      accounts.insertOne({ email: '123' })
    }
  )

上面的代码创建了一个索引,但这并不是唯一的。我已经阅读了本机mongoDB驱动程序的官方文档,但无法处理它。 是的,我在测试该代码之前删除了所有旧的indexex。

有人可以展示一个真正创建独特索引的代码。 我的意思是不是官方文档的一部分,或类似的东西 - 我需要有效的代码。 注意:我使用本地db和mlab测试了该代码 - 结果相同。

1 个答案:

答案 0 :(得分:1)

就像文档说:db.createIndex(collectionname, index[, options], callback)一样,创建会返回一个索引。尝试记录回调的结果。也许你从db获得了一个错误。

尝试类似:

 // your connection stuff
accounts.createIndex({ email: 1 }, { unique: true }, function(err, result) {
   if(err) {
      console.log(err);

   } else {
     console.log(result);
  } 
});

之后请提供日志。