如何在 django mongodb 引擎的原始查询中使用查找运算符 icontains?

How to use lookup operator icontains in raw query of django mongodb engine?

我正在使用 django-mongodb-engine

这里使用mondodbmanager来使用raw query

class NameInfo(models.Model)
   first_name = models.CharField(max_length=50)


class Abc(models.Model):
    name = EmbeddedModelField('NameInfo')
    objects = MongoDBManager()

** Abc.objects.raw_query({'name.firstname.contains':'j'})**

这没有按预期工作。那么如何在嵌入字段上使用包含查找类型?

如果有其他解决方法,那么 mongodbmanager 也可以接受,如下所示。

from django_mongodb_engine.query import A
Abc.objects.filter(name=A('first_name__icontains','j'))

在 MongoDB 术语中,这是一个 $regex 操作,因此您在 "raw" 中像这样发出:

Abc.objects.raw_query({ "name.firstname": { "$regex": "j" } })

请注意,返回的对象不是您 class 定义中的模型对象,而只是原始 python 对象。