Как мне выполнить фильтрацию на основе содержимого dict в DictField для модели с использованием механизма Django-MongoDB? - PullRequest
2 голосов
/ 09 марта 2012

с учетом моделей:

class Post(models.Model):
    datas = ListField(EmbeddedModelField('Comment'),blank=True)
    data = DictField()

class Comment(models.Model):
    name = models.CharField(max_length=255)
    date = DateField(blank=True, null=True)

Если установить переменную данных в:

{'key':'value'}

Есть ли способ фильтрации сообщений с ключом == 'значение'?

Как альтернатива, как насчет встроенных документов? Есть ли способ отфильтровать пост, в котором есть автор с именем 'Ralph'?

Кажется, это должно быть возможно, иначе ORM слишком ограничен, чтобы быть полезным, что кажется маловероятным.

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Вы можете отфильтровать пост, автор которого называется "Ральф", используя необработанные запросы:

Post.objects.raw_query({'author.name': "Ralph"})
0 голосов
/ 10 марта 2012

Рекомендую попробовать сами, но комментарий в коде

#TODO/XXX: Remove as_lookup_value() once we have a cleaner solution # for dot-notation queries

предполагает, что это так. Я когда-либо использовал только списки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...