У меня возник вопрос о моделировании списков желаний с использованием mongodb и mongoose. Идея заключается в том, что мне нужно, чтобы у пользователя было много разных списков пожеланий, которые содержат много пожеланий, каждое желание ссылается на одну статью.nosql модели списка желаний - Борьба между ссылкой и встроенным документом
Я думал об этом и потому, что список пожеланий принадлежит одному пользователю, я думал, используя встроенный документ для этого.
То же самое, что и желание, встроенное в список пожеланий.
Так что я получил что-то вроде этого
var UserSchema = new Schema({
...
wishlists: [wishlistSchema]
...
})
var WishlistSchema = new Schema({
...
wishes: [wishSchema]
...
})
но мой вопрос, что делать с этой статьей? следует использовать ссылку или скопировать данные статьи во встроенный документ.
Если я использую встроенный документ, у меня возникла проблема с обновлением. Когда изменение цены статьи, чтобы обновить каждое желание, ссылающееся на эту статью, становится проблемой. Но чтобы получить доступ к этой статье, это кусок пирога.
Если я использую ссылку, обновление больше не проблема, но у меня возникла проблема, когда я фильтрую желание в зависимости от их критериев статьи (когда я фильтрую пожелания в зависимости от цены, категории и т. Д.).
Я думаю, что второй способ, вероятно, лучший, но я не знаю, как можно построить запрос для фильтрации желания в зависимости от поля статьи. Я пробовал много вещей, используя население, но ничего не работает очень хорошо, когда вам нужно заполнить в зависимости от поля вложенных объектов. (например, получение желаний, когда их статья отвечает определенным условиям).
Является ли этот запрос выполнимым?
Sry для вопроса loooong и для моего плохого английского: /, но любые советы были бы замечательными!
Благодарим вас за ответ, я начал использовать mongodb, думая, что это идеальное оружие для данных, но на самом деле это компромисс по сравнению с базой данных sql. В любом случае я медленно понимаю дух nosql и документ, способ обработки данных. Я сделаю так, как вы предлагаете, и найдите способ наиболее эффективного обновления встроенной статьи. Спасибо – hadesMM