Найти документ по атрибутам его родителя - PullRequest
0 голосов
/ 10 августа 2011

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

post = { _id: 1,
         language: 'en',
         title: ...,
         author: ... }

comment = { _id: 2345,
            parent: 1,
            title: ...,
            author: ... }

Есть ли другой способ найти все документы (комментарии), чей родитель имеет язык 'en', кроме поиска всех комментариев, изатем запрашиваете у родительского атрибута, чтобы узнать язык?

Если нет, есть ли способ представить документ по-другому, чтобы сделать такой запрос более простым для выполнения?(В этом случае я создал другую коллекцию для комментариев вместо одного документа на пост, потому что проще и на мой взгляд эффективнее получить один комментарий, чем извлечь весь документ и отфильтровать его).

1 Ответ

1 голос
/ 10 августа 2011

Прежде всего, нет ярлыка, чтобы делать то, что вы хотите.Таким образом, ответ на ваш первый вопрос - нет.

С базами данных NoSQL нормализация не очень важна.В этом случае вы хотите запрашивать комментарии на основе кода языка, поэтому я бы просто добавил код языка к комментарию.Вы знаете, для какой публикации вы добавляете комментарий на стороне приложения, так что вы можете просто сохранить язык публикации, если хотите.наличие документа на комментарий может быть лучшим решением для вас, если вы регулярно показываете отдельные комментарии.В большинстве других ситуаций вы всегда показываете как минимум значительное количество комментариев, и в этом случае обычно лучше иметь набор комментариев для каждого документа.Скажите документ на странице комментария.Делает для очень быстрой нумерации страниц, а также.Если вы не ожидаете много комментариев на пост, вы можете просто вставить их.

...