Вопрос

Я столкнулся с несколькими ситуациями при использовании MongoDB, который требует использования DBREFS. Тем не менее, я также хотел бы кэшировать некоторые поля из ссылочного документа в самом DBREF.

{$ref:'user', $id:'10285102912A', username:'Soviut'}

Например, я могу захотеть иметь имеющее пользователя, даже если пользовательский документ будет ссылаться. Это предоставит мне все преимущества одного подхода документов; Быстрее запрос и устранение необходимости делать ручное развеселение в моем коде. В то же время в то же время позволяя мне использовать ссылки, где они имеют смысл.

Идея в том, что когда будет обновлен ссылочный документ (пользователь меняет свое имя, например) Мой бизнес-уровень может автоматически обновлять все документы, которые ссылаются на него.

В конечном итоге мне интересно, если это считается хорошей формой для хранения дополнительных полей на моих DBREFS? Это сломает что-нибудь? Буду ли я потерять свои данные каждый раз, когда ссылка переписана? Будут ли драйверы, такие как Пимонго?

Это было полезно?

Решение

В конечном итоге мне интересно, если это считается хорошей формой для хранения дополнительных полей на моих DBREFS?

Это может быть очиститель, чтобы иметь отдельные «кэшированные» и «REF» поля ... Это зависит от того, что ваша данных похожа на.

Буду ли я потерять свои данные каждый раз, когда ссылка переписана?

Вы могли, но не если вы осторожны. Если вы обновляете DB Ref Subject, просто убедитесь, что вы обновляете определенные поля, которые вы хотите обновить, не перезаписывая весь Suboubject.

Помните, что ссылки, так как они просто нормальные объекты. Ссылка базы данных является стандартным, а не специальным типом.

Будут ли драйверы, такие как Пимонго?

Дереференции водителя все еще будут работать. Помощники просто делают Findone с полями $ ref и $ id.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top