Node.js 错误:未启用文本搜索:-在mongodb中

Node.js 错误:未启用文本搜索:-在mongodb中,node.js,mongodb,mongoose,mongoose-plugins,Node.js,Mongodb,Mongoose,Mongoose Plugins,我得到以下错误:- [Error: text search not enabled] 我正在运行folliough函数,它本质上是一个mongoose mongodb操作 var textSearch = require('mongoose-text-search'); exports.dbTextSearch = function () { console.log('dbTextSearch'); var gameSchema = mongoose.Schema({

我得到以下错误:-

[Error: text search not enabled]
我正在运行folliough函数,它本质上是一个mongoose mongodb操作

var textSearch = require('mongoose-text-search');

exports.dbTextSearch = function () {
    console.log('dbTextSearch');
    var gameSchema = mongoose.Schema({
        name: String
      , tags: [String]
      , likes: Number
      , created: Date
    });

    gameSchema.plugin(textSearch);

    gameSchema.index({ tags: 'text' });

    var Game = mongoose.model('Game', gameSchema);

    Game.create({ name: 'Super Mario 64', tags: ['nintendo', 'mario', '3d'] }, function (err) {
    Game.textSearch('3d', function (err, output) {
        if (err) return console.log(err); // this outputs the error.
        var inspect = require('util').inspect;
      console.log(inspect(output, { depth: null }));
        });
    });
}
我正在尝试实现插件

MongoDB文本搜索仍然是一项实验性功能。这就是为什么它在默认情况下是禁用的。您可以通过使用命令行参数启动mongod--setParameter textSearchEnabled=true或将行
textSearchEnabled=true
添加到文件mongodb.conf中来实现

请注意,作为一项实验性功能,文本搜索还不应该在生产环境中使用

更新


从版本
2.6
起,mongoDB文本搜索功能具有生产质量并自动启用。

在mongoDB 2.4中-要启用实验文本搜索,请使用

setParameter=textSearchEnabled=true

以下行在mongodb.conf文件中对我不起作用

textSearchEnabled=true


编辑在MongoDB 2.6+中默认启用。您只需要设置文本索引

启动mongo时,必须指定此启动参数(在上述答案中提到)。因此,如果手动启动,请使用:

mongod --setParameter textSearchEnabled=true 
否则,如果mongo是deamonized,则将其放入deamon脚本中。大概是这样的:

start()
{
  echo -n $"Starting mongod: "
  daemon --user "$MONGO_USER" $NUMACTL $mongod --setParameter textSearchEnabled=true $OPTIONS
然后创建文本索引并检查其存在性:

db.mycoll.createIndex( { someFieldName: "text" } );
db.mycoll.getIndexes()

如果搜索该错误字符串,很容易找到最可能的原因。我将MongoDB升级到2.6,但仍然得到“MongoError:文本搜索未启用”。有没有办法检查textSearchEnabled是真是假?。也许这就是它显示为未启用的原因。不知道你怎么查。TextSearch的工作方式有所不同(从2.6开始),在2.4中,
$text
操作员返回多个文档,而不是
text
只返回一个文档。另外,在mongoshell中检查您的
版本()。