MongoDB如何查询包含所有指定词的文档,不受词序位置限制?
MongoDB文本查询:匹配所有关键词(忽略顺序)
你之前用带双引号的短语搜索"Le Paul Vens",MongoDB会把它当作精确短语匹配,所以只会返回完全符合这个短语顺序的文档。
要实现匹配所有关键词(不管词汇顺序),只需要去掉短语的双引号,让关键词用空格分隔即可:
query = {"$text": {"$search": "Le Paul Vens"}}
这个查询的逻辑是同时包含所有指定关键词(默认是逻辑AND),所以会返回前三个包含Le、Paul、Vens三个词的文档,不管它们的排列顺序,而最后一个不含这三个词的文档会被排除。
如果需要更明确地指定每个关键词必须存在,也可以给每个关键词单独加双引号:
query = {"$text": {"$search": "\"Le\" \"Paul\" \"Vens\""}}
效果和上面的查询一致,都是确保三个词都出现在文档中,不限制顺序。
内容的提问来源于stack exchange,提问作者H3yH0n
相关产品推荐
相关产品推荐

