Mongoose 创建多个索引并个性化 quety 以使用特定索引调用

Posted

技术标签:

【中文标题】Mongoose 创建多个索引并个性化 quety 以使用特定索引调用【英文标题】:Mongoose create multiple index and personalize quety to call with specific index 【发布时间】:2016-03-20 17:38:18 【问题描述】:

我想在我的模型上做很多索引,当我做查询时,在那个查询中使用一个特定的索引

这是我的模特

var mongoose = require('mongoose'),
Schema = mongoose.Schema;

var ThingSchema = new Schema(

        word:
            type: 'ObjectId',
            required:true
        ,
        frecuency:
            type: String,
            default:'enabled'
        ,
        document:
            documentId:
                type: 'ObjectId'
            ,
            quality:
                type: Number
            
        ,
        location: 
            type: [Number],
            index: '2d' 
        ,
        createdAt: 
            type: Date,
            default: Date.now
        ,
        updatedAt: 
            type: Date,
            default: Date.now
        
    );

module.exports = mongoose.model('Thing', ThingSchema);

我想要这些索引:

按单词索引(是一个字符串) 按位置索引(是地理索引) 按单词和位置索引

现在,当我进行查询时,我想指定要使用的索引

【问题讨论】:

【参考方案1】:

在您的module.exports 行之前:

ThingSchema.index(word: 1);
// all other indexes you want to add...

当需要进行查询时,使用hint() 指定要使用的索引:

Thing.find(...).hint(word: 1);

【讨论】:

以上是关于Mongoose 创建多个索引并个性化 quety 以使用特定索引调用的主要内容,如果未能解决你的问题,请参考以下文章

链接多个 Promise,使用 map 循环数组并创建 mongoose 文档?

Mongo基础使用,以及在Express项目中使用Mongoose

在 Mongoose 中为对象数组创建索引

MongoDB(Mongoose)数据库结构题

Mongoose 不断为不再存在的旧字段创建索引

发送多个子文档时,Mongoose 验证失败