使用mongoose在mongo中查询集合上的命名文本索引

时间:2016-01-26 22:05:06

标签: javascript node.js mongodb mongoose

我通过mongoose使用自定义名称在我的收藏集上创建文本索引,但我不确定如何查询该特定文本索引或者您是否甚至可以拥有多个文本索引在一个集合上。

我已经指定了一个索引:

mongoose.connection.collections['jobs'].ensureIndex({ title: 'text', description: 'text' }, { name: 'customtext' });

我可以使用常规$text查询进行搜索:

var query = {
  "$text": {
    "$search": "bleep bloop"
  }
}
Model.find(query, function(error, results) {});

但有没有办法为自定义名称添加多个不同的文本索引(针对不同的搜索)和查询?

2 个答案:

答案 0 :(得分:1)

MongoDB集合可以有at most one text index。您无法为单个集合定义多个文本索引。

答案 1 :(得分:1)

您可以使用不同名称的多个文本索引,但索引名称主要用于删除索引。

示例:

db.collection.ensureIndex(
   { content: "text"},
   { name: "TextIndex"}
)
db.collection.dropIndex("TextIndex")