Mongoose: как установить несколько многоключевых индексов в схеме? - PullRequest
0 голосов
/ 03 февраля 2019

Я тестирую модель 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), не беспокоясь о создании индексов, так как они уже были бы установлены в схеме ...

Почему это не работает при индексации в схеме

...