Mongoose创建多个索引

时间:2015-01-19 12:23:23

标签: mongodb express indexing mongoose

我有一个问题我想实现mongodb的全文搜索,所以我被困在因为数据库创建了一个文本搜索索引,我想有多个字段用于搜索..架构的例子:



name: {
    type: String,
    required: true,
    trim: true,
    index: 'text'
  },
  sub_name: {
    type: String,
    trim: true

  },
  location: [{
      geo: {
        type: [Number],
        index: '2d'
      },
      description: {
        type: String,
        trim: true,
        index: 'text'
      },
      address: {

        city: {
          type: String,
          index: 'text'
        },

        street: {
          type: String,
          index: 'text'
        },
        state: {
          type: String,
          index: 'text'
        }
      },




那么这样做的诀窍是什么?我如何应用mutliple字段进行全文搜索? thx for anwser ...

2 个答案:

答案 0 :(得分:4)

尝试类似的东西:

var schema= new Schema({
  name: String,
  sub_name: String,
  tags: { type: [String], index: true } // field level
});

schema.index({ name: 'text', sub_name: 'text' }); // schema level

答案 1 :(得分:0)

创建多个文本索引使用此功能。这将有助于全文搜索

  1. 查找索引:db.collectionName.getIndexes();

  2. 比下降索引名称:db.campaigns.dropIndex('name_text');

  3. 在多个键上创建索引:db.campaigns.ensureIndex({ name: 'text' , description: 'text', tags : 'text' });