首页 > 解决方案 > 如何在mongodb中搜索字段的特定动态模式。?

问题描述

我需要在 mongodb 集合中搜索特定的模式字段。我尝试使用 {$exists:true}; 但是,只有在您提供精确字段时才会给出结果。

我尝试将 {$exists:true} 用于我的领域。但是,如果您给出一些模式,这不会给出结果。

{
"field1":"value1",
"field2":"value2",
"field3":object
{/arjun1/pat1: 1,
/arjun2/pat2: 3,
/arjun3/pat3: 5
}
"field4":"value4",
}

从某个字段,我得到键 pat3 和 field3。由此我需要找出文档中是否存在值 /arjun3/pat3 。如果我使用 {"field3./arjun3/pat3":{$exists:true}},这会给我结果。但问题是我只得到了 field3 和 pat3,我需要使用一些模式匹配,比如 field3.*.pat3 然后使用 $expr 或 $exists; 我不完全确定该怎么做。请帮忙。

标签: python-3.xmongodb

解决方案


您可以re为 SQL 之类的模式匹配使用正则表达式(模块),并编译您自己的自定义通配符。但是,如果您不希望这样,那么您可以简单地使用该fnmatch模块,它是 python 的内置库,允许对多个字符 (via *) 或单个字符 (via ?) 进行通配符匹配。

import fnmatch

a = "hello"
print(fnmatch.fnmatch(a, "h*"))

输出:-

True

推荐阅读