最近、Mongoose(v.3.2.1)を使い始めましたが、インデックスに問題があります。
スキーマにいくつかのインデックス(Schema.path('attr')。index(true))を定義しましたが、それらはDBに作成されていません。(シェルでdb.collection.getIndexKeys()を実行すると、_idインデックスのみが表示されます)。
一部/すべてのインデックスが作成される場合があることに注意してください。
デバッグをオンにすると、ensureIndex()が実行されているのがわかります。
mongoose.set('debug', true);
Mongoose: myColl.ensureIndex({ type: 1 }) { safe: true, background: true }
Mongoose: myColl.ensureIndex({ created: 1 }) { safe: true, background: true }
Mongoose: myColl.ensureIndex({ updated: 1 }) { safe: true, background: true }
エラーも聞きました:
mongoose.connection.on('error', function(err) {
console.error('MongoDB error: %s', err);
});
myCollModel.on('index',function(err) {
console.error('MongoDB error: %s', err);
});
コンソールに挿入とクエリが表示されますが、エラーはありません。
どんな助けでも大歓迎です!
ありがとう、
ニッツァンバー
私のスキーマは次のように定義されています。
myColl = new Schema();
myColl.add({
text : { type: String, required : true }
, shortText: { type: String }
, type : { type: String , index: true}
, correctAnswerId : { type: ObjectId, ref: QuestionAnswer}
, answers: { type: [ QuestionAnswer ] }
});
この場合、「type」インデックスは作成されません。時々、ensureIndexes()を数回実行した後、それらが作成されることに注意してください。
ありがとう!