django - Mongoengine 检查 ListField() 中是否包含整个不区分大小写的字符串

标签 django mongodb mongoengine listfield

我正在尝试构建一个查询,该查询返回 ListField(EmailField()) 中具有特定电子邮件地址的所有对象。

我通过执行尝试使用 mongoengine

User.Objects.filter(emaillist__contains=email)

问题是,当电子邮件字符串是电子邮件列表中包含的电子邮件的子字符串时,也会返回该对象。但是,我只希望当整个不区分大小写的电子邮件字符串包含在列表字段中时返回它。

这是否可以通过某种方式或通过执行原始查询来实现? 非常感谢任何提示或帮助!

乔纳斯

最佳答案

documentation他们有这个模型,类似于您的电子邮件列表:

class Post(Document):
    tags = ListField(StringField(max_length=30))

他们这样查询:

for post in Post.objects(tags='mongodb'):
    print post.title

所以你的查询应该像这样工作(不区分大小写):

User.Objects.filter(emaillist__iexact=email)

关于django - Mongoengine 检查 ListField() 中是否包含整个不区分大小写的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19972722/

相关文章:

django - 在mongo的日期时间字段中按日期排序

python - 403 权限缺失或不足

javascript - Meteor 动态 MongoDB 集合

java - MongoDB 中的位置倒排索引

c# - 让 Json.NET + MongoDB Bson 一起玩得很好

python - 在 MongoEngine 中过滤嵌入列表

python - 将 MongoEngine 文档作为 JSON 返回

具有远程 jwt 身份验证的 Django REST

mysql - SQL 命令仅针对 postgres 中的一张表卡住

python - Django休息框架: Issue using OrderingFilter and django-filter simultaneously