Я хотел бы вывести следующую таблицу стилей, используя CouchDB и связанные документы:
+----------------+------------+--------------------+
| Title | Date | Number of Comments |
+----------------+------------+--------------------+
| Hello World | 2000-01-01 | 301 |
| Next Question? | 1999-03-04 | 11 |
| Final Post | 1992-04-01 | 64 |
+----------------+------------+--------------------+
У меня есть документы, которые выглядят так для сообщений:
{ _id : 'hello-world', title : 'Hello World', date : '2000-01-01', type : 'post' }
и для комментариев:
{ _id : 'some-comment', title : 'Great post!', postid: 'hello-world', type : 'comment' }
{ _id : 'some-comment2', title : 'Poor quality', postid: 'final-post', type : 'comment' }
Как я могу это сделать? Я бы предпочел использовать одну карту/уменьшить.
Я отвечаю на это для себя, если у кого-то еще есть этот вопрос. Я думаю, что мое неправильное понимание связано с тем, что я привык к SQL.
В общем, мои варианты:
comments-by-post
), которое даст мне post._id в качестве ключа и # количество комментариев к этому посту. Затем я могу сшить это вместе с сообщениями, полученными запросом Mango или другим представлением на моем языке программирования.numberOfComments
в объекте публикации и обновлять его каждый раз, когда кто-то комментирует. Это кажется неправильным с точки зрения SQL, но я считаю, что гибкость базы данных документов способствует этому.Я выбираю для начала сделать №1 и поэкспериментировать с №2.
Вы не можете сделать это с одним запросом. Вы можете использовать карту/уменьшить, чтобы получить количество комментариев к сообщению, а затем запросить диван, чтобы получить информацию об этих сообщениях.