gpt4 book ai didi

python - pymongo - 搜索包含 $ 和运算符的文档集合,不区分大小写

转载 作者:太空宇宙 更新时间:2023-11-03 21:35:51 25 4
gpt4 key购买 nike

我正在尝试搜索包含文档的集合,集合如下所示:

[{'description':'Fast and Dangerous',
'colour':'blue',
'make':'ford'},
{'description':'slow and dangerous',
'colour':'red',
'make':'lexus'}]

我正在尝试构建一个搜索查询,该查询将返回包含红色和危险(不区分大小写)的所有文档

我一开始是:

find({"$text": {"$search": "red dangerous"}})

但是,这当然不区分大小写,但它是 OR 而不是 AND。

我已阅读https://docs.mongodb.com/manual/reference/operator/query/and/#op._S_and - 但这意味着您必须引用可能包含红色或危险的特定字段,而不是整个文档。解决这个问题的最佳方法是什么?我希望我的代码是专业的,但我觉得我想出的任何 hack 都不会是专业的。有什么指点吗?

最佳答案

您可以使用$meta$sort 的聚合阶段。类似的东西

db.collection.aggregate([
{ "$match": { "$text": { "$search": "red Dangerous" } } },
{ "$addFields": { "score": { "$meta": "textScore" } } },
{ "$sort": { "score": 1 } }
])

文本分数表示文档与搜索词的匹配程度。因此,最匹配的文档将始终位于顶部。

关于python - pymongo - 搜索包含 $ 和运算符的文档集合,不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53249496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com