Какое поле лучше всего выбрать для этого проекта с использованием MongoEngine?

В настоящее время я работаю над проектом, и мне было интересно, могу ли я получить небольшой совет. Я стремлюсь хранить информацию о нескольких URL-адресах, каждый из которых будет иметь ряд параметров и будет выглядеть примерно так:

{
  Name: "Report1",
  Host: "127.0.0.1",
  Description: "This is a test report",
  Date: "00/00/00",
  Time: "00:00:00",
  Pages:{
        Page: "test_page_url",
        Parameters:{
                 Parameter: "test_param",
                 Value: "test_parm_value"
                    }

        }

}

Мне не удалось найти много информации/примеров использования «один ко многим» в отношениях «один ко многим» с использованием MongoEngine, и мне было интересно, какой подход будет лучшим? Можно ли использовать EmbeddedDocumentListField таким образом или лучше использовать ReferenceField. Буду очень признателен за любые советы, так как я все еще новичок в подходе NoSQL.


person ChuteDammit    schedule 23.02.2016    source источник
comment
Этот ответ может помочь: stackoverflow.com/a/34952982/3271558   -  person Steve Rossiter    schedule 23.02.2016


Ответы (1)


Как правило, встроенные документы хорошо подходят, если

  • Parameter принадлежит только одному Page, а Page и его Parameter принадлежат только одному тесту

  • ваш документ не будет расти более 16 мес.

AFAIU, здесь дело обстоит именно так, поэтому я не вижу причин использовать ReferenceFields, что приведет к сложности и снижению производительности.

Проще говоря, если вы можете представить свои данные, как в своем вопросе, в виде единого документа, а не связывать несколько документов вместе, как в реляционной модели, то, вероятно, безопасно использовать встроенные документы.

Подробнее здесь, как предложено в комментарии.

person Jérôme    schedule 05.04.2016