Mongoose 创建多个索引并个性化查询以调用特定索引
Mongoose create multiple index and personalize quety to call with specific index
我想在我的模型上做很多索引,当我在查询时使用该查询中的特定索引
这是我的模型
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);
我想要这些索引:
- 按单词索引(是一个字符串)
- 按位置索引(是地理索引)
- 按单词和位置索引
现在,当我进行查询时,我想指定要使用的索引
在您的 module.exports
行之前:
ThingSchema.index({word: 1});
// all other indexes you want to add...
当需要进行查询时,使用hint()
指定要使用的索引:
Thing.find({...}).hint({word: 1});
我想在我的模型上做很多索引,当我在查询时使用该查询中的特定索引
这是我的模型
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);
我想要这些索引:
- 按单词索引(是一个字符串)
- 按位置索引(是地理索引)
- 按单词和位置索引
现在,当我进行查询时,我想指定要使用的索引
在您的 module.exports
行之前:
ThingSchema.index({word: 1});
// all other indexes you want to add...
当需要进行查询时,使用hint()
指定要使用的索引:
Thing.find({...}).hint({word: 1});