【发布时间】:2016-08-20 01:27:28
【问题描述】:
我有以下架构:
const Schema = ({
metadata: {
title: String,
...
},
...
});
我希望在metadata.title 上创建一个文本索引。我可以在任何一级属性上成功创建文本索引,但我遇到了嵌套标题的问题。
我尝试了以下代码,但无济于事。我的语法错了吗?我对文档没有运气...
Schema.index({ 'metadata.title': 'text' });
搜索:
Schema
.find(
{ $text : { $search : req.params.query } },
{ score : { $meta: "textScore" } })
【问题讨论】:
-
开始赏金 - 但事实证明当前的答案解决了问题。将在那里奖励赏金。
-
您对
Schema.index({ 'metadata.title': 'text' });的原始尝试是正确的方法,并且在我尝试时效果很好。当前接受的答案只会创建传统索引,而不是文本索引。您将Schema用于您的架构(和您的模型)有点令人困惑,因为您应该将该标识符名称保留为Schema构造函数。 -
是的,它在我的代码中被称为不同的东西,我只是在这里使用 Schema 作为占位符......对不起。是的,实际上我最初的尝试正如你所说的那样工作......我将赏金奖励给谁?
-
我猜你只需要让赏金到期。但是你真的应该发布你自己的答案并接受它,或者至少从当前接受的答案中删除复选标记,因为那个答案是错误的。
标签: javascript node.js mongodb