猫鼬架构多索引

时间:2019-05-18 21:30:04

标签: node.js mongodb mongoose mongoose-schema

我试图用猫鼬设置多个索引。但是只有第一个schema.index()可以工作,如果我更改顺序则可以独立工作。

const schema = new mongoose.Schema({
  email: {
    type: String,
    required: true,
  },

  name: {
    type: String,
    required: true,
  },
})

schema.index({ name: 'text' })
schema.index({ email: 'text' }, { unique: true })

如何设置两个schema.index()?

1 个答案:

答案 0 :(得分:1)

由于猫鼬支持直接在架构字段上设置索引,因此您可以这样做:

const schema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
    index: true  // <-- non text index here
  },
  email: {
    type: String,
    required: true,
    unique: true  // <-- set unique here
  }
})

schema.index({ email: 'text', name: 'text'});  // <-- define text indexes