Задать вопрос

Как в Mongoose сделать index search?

Нужно сделать полнотекстовый поиск по таблице (mongoDB).
зашел в офф документацию.

Вот схема:
var mongoose = require('mongoose');

var testSchema = new mongoose.Schema({
  tags: [],
  text: { type: String }
});

testSchema.index({text: 'text', tags: 'text'});
module.exports = mongoose.model('Test', testSchema);


Код для поиска:
var test = require('../models/Test.js');

  test
    .find({ $text : { $search : "random" } })
    .exec(function(err, results) {
      if (err) return res.send(err);
      res.send(results)
    });


Объекты с базы:
{ 
    "_id" : ObjectId("57f3d21358b045bc1f16a156"), 
    "text" : "random 1", 
    "tags" : [ "a", "b", "c" ]
}
{ 
    "_id" : ObjectId("57f3d2a858b045bc1f16a157"), 
    "text" : "test str 2", 
    "tags" : [ "d",   "e",  "f" ]
}
{ 
    "_id" : ObjectId("57f3d2b758b045bc1f16a158"), 
    "text" : "random 2", 
    "tags" : [ "a",  "e",  "f" ]
}

Проблема в том что результатом приходит: пустой массив []
Подскажите где я ошибся или скиньте пример рабочего кода если есть. (юзай еластик или сфинкс нельзя так так сказали сделать на монге)
  • Вопрос задан
  • 790 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы