【发布时间】:2018-09-27 18:53:19
【问题描述】:
我在 mongo db 中创建了一个集合,如下所示
db.articles.insert([
{ _id: 1, subject: "one", author: "abc", views: 50 },
{ _id: 2, subject: "lastone", author: "abc", views: 5 },
{ _id: 3, subject: "firstone", author: "abc", views: 90 },
{ _id: 4, subject: "everyone", author: "abc", views: 100 },
{ _id: 5, subject: "allone", author: "efg", views: 100 },
{ _id: 6, subject: "noone", author: "efg", views: 100 },
{ _id: 7, subject: "nothing", author: "abc", views: 100 }])
之后,我为字段主题和作者提供了文本索引。
db.articles.createIndex(
{subject: "text",
author: "text"})
现在我正在尝试在索引字段中搜索带有“one”的单词。当我执行查询时...
db.articles.count({$text: {$search: "\"one\""}})
...结果是1。
问题是当我想要组合单词“one”,“abc”时......
db.articles.count({$text: {$search: "\"one\" \"abc\""}}
...它给出的结果为4。结果包括包含主题名称为“lastone”、“firstone”、“everyone”、“one”的记录。
所以我的问题是为什么第一个查询不获取 4 条记录?以及如何编写一个可以获取包含单词“one”的 4 条记录的查询?
【问题讨论】:
标签: database mongodb mongodb-query database-administration mongo-shell