在mongo文本搜索中是否可以排除/否定短语?

时间:2019-04-27 17:01:56

标签: mongodb

How to AND and NOT in MongoDB $text search

有关

使用相同的文档单词集合,例如:

{ "text" : "cake" }
{ "text" : "sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale" }
{ "text" : "dress sale" }
{ "text" : "cake sale monday" }

是否可以以某种方式明确地否定搜索词组(不仅是一个单词),引用该词组时,以下内容将不起作用:

db.words.find( { "$text": { "$search": "-\"cake sale\"" } },{_id: 0})

请注意,减号(试图取反)"-\"cake sale\""是为了从结果集中排除包含确切短语的文档。

只有使用$regex从文本搜索步骤中排除已检索到的结果,才能进一步处理此问题。

1 个答案:

答案 0 :(得分:0)

好吧,我必须回答:

否,这是不可能的,您必须在进一步的步骤中进行排除,可能需要在其他$and子句中使用$regex

我希望有人能证明我错了。