Я тестирую модель Mongoose, работающую в Node, с Mocha, где я установил 2 многопользовательских индекса, таких как:
// eventsModel.js
// ...
// ...
const Indexes = require('./indexes')
EventSchema.index( Indexes.active(), {name: 'Active', background: false})
EventSchema.index( Indexes.inactive(), {name: 'Inactive', background: false})
module.exports = mongoose.model('Event', EventSchema)
Но когда я запускаю такие тесты, это не работает.Кажется, что индексы не завершаются вовремя, прежде чем документы будут вставлены, и тогда мои тесты не пройдут с ошибкой planner returned error: bad hint
.
Я должен закомментировать эти shema.indexes
и установить их как:
const Indexes = require('./indexes')
let Events = require('./eventsModel')
await mongoose.connection.db.collection('events').createIndex(Indexes.active())
await mongoose.connection.db.collection('events').createIndex(Indexes.inactive())
await Events.insertMany(events)
Тогда это работает.Но я бы предпочел просто вызвать Events.insertMany (events), не беспокоясь о создании индексов, так как они уже были бы установлены в схеме ...
Почему это не работает при индексации в схеме