Я сталкивался с несколькими ситуациями при использовании MongoDB, которые требуют использования DBRef. Однако я также хотел бы кэшировать некоторые поля из ссылочного документа в самом DBRef.
{$ref:'user', $id:'10285102912A', username:'Soviut'}
Например, я могу захотеть, чтобы имя пользователя было доступно, даже если на него ссылается документ пользователя. Это дало бы мне все преимущества подхода, основанного на едином документе; Ускорение запросов и устранение необходимости выполнять разыменование вручную в моем коде. В то же время, позволяя мне использовать ссылки там, где они имеют смысл.
Идея заключается в том, что при обновлении ссылочного документа (например, пользователь меняет свое имя) мой бизнес-уровень может автоматически обновлять все документы, которые на него ссылаются.
В конечном счете, мне интересно, считается ли это хорошей формой для хранения дополнительных полей в моих DBRef? Это что-нибудь сломает? Буду ли я терять свои данные каждый раз, когда ссылка будет переписана? Будут ли такие драйверы, как pymongo, поддерживать его?