【发布时间】:2017-10-08 12:43:11
【问题描述】:
提前致谢。 我有一个如下的猫鼬模式:
var bookSchema = new mongoose.Schema({
name: { type: String, index: true, default: '' },
text: { type: String, index: true, default: '' },
date: { type: Date, default: Date.now },
price: { type: Number, default: 0 } });
bookSchema.index({text: 1, name: 1}, {unique: true});
我的问题是当我在名为“text”的字段中搜索任何文本时,它都不起作用。可能是命名冲突,我是不是要把字段名改成文字以外的东西...
Book.find( { $text : { $search : 'mongoose is great' } } )...
【问题讨论】:
-
你遇到了什么错误,你如何定义模型?
-
我发现的一个大问题是我需要重新启动 MongoDB 服务器...(哦!)。我写了一个简短的函数 bookSchema.pre('save', function(next) { this.searchable = this.text + ' ' + this.name; next(); });将所有可搜索的内容包含在新字段中。
-
@Mendo 添加索引时不需要重启MongoDB,用文本索引搜索不需要创建单独的字段,你标记正确的答案是不对的任何一个。不良信息超载!您可能应该重新开始。
-
你可能是对的......我正在使用 mLabs。我启动了一个新的 mongo 服务器,一切都很好,至于旧的 mongo 服务器,我仍然无法实现所需的索引,所以我正在努力寻找答案。