2017-12-22 2 views
0

を経由して一意のインデックスを作成すると、コードがあります:上記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でテストしました。同じ結果です。

答えて

0

ドキュメンテーションのように: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); 
    } 
}); 

のようなものを試してみてください。

+0

私は本当に馬鹿だと感じます。上記のコード例を公開したとき、ユニークなインデックスが作成されました。 私はこのコードを使用する理由がわかりません: https://gyazo.com/d57dba0ebdb6ee9dd9693d38779979fa 私はユニークなインデックスを取得しません。出力さえ同じです - エラーはありません。 ただし、作成されたインデックスは一意ではありません。 https://gyazo.com/78c236b5f93ace768d4acdbcc0c58554 準拠したドキュメントの約束があります。何ができますか? –

+0

私は自分の約束を書いて、期待どおりに動作します: https://gyazo.com/f83282644299320607904874c89827c1 –

関連する問題