2017-02-09 5 views
0

Так что я пытаюсь создать индекс в моей messageSchemaMongoDB schema.createIndex не является функцией

var messageSchema = new Schema({ 
    senderName : String, 
    content : String, 
    reply : String, 
    date: { type: Date, default: Date.now() }, 
    room : { type: Schema.Types.ObjectId } 
}); 

// это как пытался создать индекс

messageSchema.createIndex({content : "text"}, function(err, data){ 
    console.log(err); 
    console.log(data); 
    }); 

// Также пытался

messageSchema.createIndex({content : "text"}); 

// попытался это слишком

messageSchema.createIndex({"content" : "text"}); 

Ошибка я продолжаю получать это

TypeError: messageSchema.createIndex is not a function

Может кто-нибудь помочь мне с этим.

ответ

3

Кажется, вы используете мангуст. Под капотом

Каждая схема сопоставляется с коллекцией MongoDB и определяет форму документов внутри этой коллекции.

В Монго оболочки, collection.createIndex() работает, но в мангуста вам нужно использовать mySchema.index(). Мангуст выполнит эту работу.

См. Здесь для получения дополнительной информации: http://mongoosejs.com/docs/guide.html.

1

Метода вы ищете называется index, не createIndex

1

из мангуста:

var messageSchema = new Schema({ 
    senderName : String, 
    content : { type: String, index: true }, 
    reply : String, 
    date: { type: Date, default: Date.now() }, 
    room : { type: Schema.Types.ObjectId } 
}); 
messageSchema.index({content: 'text'});