【问题标题】:Query a named text index on a collection in mongo using mongoose使用 mongoose 在 mongo 中查询集合上的命名文本索引
【发布时间】:2016-01-29 08:51:19
【问题描述】:

我正在通过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) {});

但是有没有办法添加多个不同的文本索引(用于不同的搜索)并通过自定义名称进行查询?

【问题讨论】:

  • 每个集合只能使用一个文本索引。这也适用于其他特殊索引类型的地理空间索引。
  • @BlakesSeven 啊。很高兴知道。谢谢。

标签: javascript node.js mongodb mongoose


【解决方案1】:

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

【讨论】:

  • 谢谢。我不敢相信我错过了。
【解决方案2】:

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

例子:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多