我有一个使用mongodb的流星应用程序。我有一个名为tasks
的集合,其中有一个名为summary
的字段。我在摘要中添加了一个文本索引。
当我运行此查询时:
return Tasks.find(
{ userId: this.userId, $text: { $search: "#"+term } },
{ sort: { createdAt: -1 } }
);
我获得的任务同时包含#myterm
和myterm
。
我想得到什么,以及我应该得到的只是与#myterm
匹配的文件。它忽略了标签字符。
我怎样才能做到这一点?
答案 0 :(得分:1)
将其包含在转义引号中,如下所示:
return Tasks.find(
{ userId: this.userId, $text: { $search: "\"#"+term+"\"" } },
{ sort: { createdAt: -1 } }
);
它似乎是特殊字符的shell约定。
答案 1 :(得分:0)
你可以试试这个。希望它能起作用
return Tasks.find(
{ userId: this.userId, "summary": { $regex: "\#term" } },
{ sort: { createdAt: -1 } }
);
如果你想在一个特定的字段中搜索,那么$ regex将是一个更好的选择。为此,不需要任何索引。