簡體   English   中英

使用 Django-MongoDB (Djongo) 獲取數組內的元素

[英]Get Element inside Array With Django-MongoDB (Djongo)

我使用 Django 和 MongoDB 作為我的數據庫。 我創建了一個 model (MyObject),其中一個字段是 ArrayField 類型,其中包含條目 JSON 字段。 為此,我創建了一個抽象的 model。

所以我的models.py:

class MyObject(models.Model):
    ...
    myArrayField = models.ArrayField(model_container=NIC, null=True, blank=True, default=[])
    ...

class MyAbstractObject(models.Model):
    field1 = models.CharField(null=True, blank=True, max_length=100, default="")
    field2 = models.IPAddressField(blank=True, null=True, default="")
    
    class Meta:
        abstract = True

在 mongoDB 我有:

MyObject:
{
   ...
   myArrayField: [{field1: "abc", field2: "1.1.1.1"}]
   ...
}

現在我想獲取值為“1.1.1.1”的元素,我該怎么做?

我嘗試:

q1 = MyObject.objects.filter(myArrayField__contains='1.1.1.1')
q2 = MyObject.objects.filter(myArrayField_0_field2='1.1.1.1')
q3 = MyObject.objects.filter(myArrayField__contains={'field2':'1.1.1.1})

你能幫助我嗎?

Djongo Doc使查詢ArrayField非常清晰,這是文檔中的一個示例:

entries = Entry.objects.filter(authors={'name': 'Paul'})

在您的情況下將類似於:

q1 = MyObject.objects.filter(myArrayField={'field2'='1.1.1.1'})

查看文檔以獲取更復雜的查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM