【发布时间】:2018-02-26 15:16:11
【问题描述】:
我在包含string 值的模型中有一个ListField。如何查询包含给定string 的string 匹配项?我知道contains 运营商确实需要。但它与给定的字符串完全匹配。
例如:
[
{_id: 1, "name": "name1", "tags": ["abc", "efg", "ijk"]},
{_id: 2, "name": "name2", "tags": ["bcd", "fgh", "jkl"]}
]
型号:
class Users(Document):
name = StringField()
tags = ListField(StringField())
那么我的查询是这样的
users = Users.objects(tags__icontains='bc')
我希望它返回的两条记录都包含bc
注意:对于icontains,运算符在StringField 时按预期工作,但对于ListField,它只匹配User.objects(tags='bc')。 Refer
除此之外,mongo 查询中还有一个带有文本匹配的选项,MongoDB 查询支持正则表达式的 Perl 表示法。喜欢tags=/bc/。我们如何使用 mongoengine 来做到这一点。 Refer
【问题讨论】:
标签: python mongodb mongoengine