Я делаю запрос для всех comments
и commentLikes
. По существу я пробегаем по коллекции комментариев, на мой взгляд, но мне нужно, чтобы связать commentLikes
с comments
. Прямо сейчас commentLikes
ссылается на comments._id
как commentLikes.comment_id
.
Я рассматривал возможность использования подчеркивания для этого, поскольку есть некоторые полезные функции полезности, но какие из них я мог бы использовать? Я закончил играть с _.where
но не уверен, что это правильный инструмент для работы.
Это лучший способ сделать это?
var comments =
[ { submission_id: '513d3702b99f8b1ca5000026',
comment: 'asdfnasdfoiasdfiosdaf',
user_id: '1',
_id: '5157e79c562277e457000011',
deleted: false,
created: 'Sun Mar 31 2013 00:37:00 GMT-0700 (PDT)',
parent_id: null },
{ submission_id: '513d3702b99f8b1ca5000026',
comment: 'asdfioasdfoiasdjiofasdijofjiasodf',
user_id: '1',
_id: '5157e799562277e457000010',
deleted: false,
created: 'Sun Mar 31 2013 00:36:57 GMT-0700 (PDT)',
parent_id: null },
{ submission_id: '513d3702b99f8b1ca5000026',
comment: 'sdafijsadjiofasoijfjaiosdfjioasdfjiosdaf',
user_id: '1',
_id: '5157e797562277e45700000f',
deleted: false,
created: 'Sun Mar 31 2013 00:36:55 GMT-0700 (PDT)',
parent_id: null },
{ submission_id: '513d3702b99f8b1ca5000026',
comment: 'asdfjiadsfojidfsjoaifdaijofdasijods',
user_id: '1',
_id: '5157e794562277e45700000e',
deleted: false,
created: 'Sun Mar 31 2013 00:36:52 GMT-0700 (PDT)',
parent_id: null },
{ submission_id: '513d3702b99f8b1ca5000026',
comment: 'asdfiasdfijoasdfoijas',
user_id: '1',
_id: '5157e40227bf651157000280',
deleted: false,
created: 'Sun Mar 31 2013 00:21:38 GMT-0700 (PDT)',
parent_id: null } ];
var commentLikes =
[ { submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e40227bf651157000280',
user_id: 1,
_id: '5157e40527bf651157000286',
created: 'Sun Mar 31 2013 00:21:41 GMT-0700 (PDT)' },
{ submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e40227bf651157000280',
user_id: 1,
_id: '5157e40b27bf65115700028e',
created: 'Sun Mar 31 2013 00:21:47 GMT-0700 (PDT)' },
{ submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e797562277e45700000f',
user_id: 1,
_id: '5157e7cc9c1fe3ed57000001',
created: 'Sun Mar 31 2013 00:37:48 GMT-0700 (PDT)' },
{ submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e799562277e457000010',
user_id: 1,
_id: '5157e7cd9c1fe3ed57000002',
created: 'Sun Mar 31 2013 00:37:49 GMT-0700 (PDT)' },
{ submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e79c562277e457000011',
user_id: 1,
_id: '5157e7ce9c1fe3ed57000003',
created: 'Sun Mar 31 2013 00:37:50 GMT-0700 (PDT)' },
{ submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e79c562277e457000011',
user_id: 1,
_id: '5157e7d19c1fe3ed57000004',
created: 'Sun Mar 31 2013 00:37:53 GMT-0700 (PDT)' },
{ submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e79c562277e457000011',
user_id: 1,
_id: '5157e7d29c1fe3ed57000005',
created: 'Sun Mar 31 2013 00:37:54 GMT-0700 (PDT)' },
{ submission_id: '513d3702b99f8b1ca5000026',
comment_id: '5157e79c562277e457000011',
user_id: 1,
_id: '5157e7d29c1fe3ed57000006',
created: 'Sun Mar 31 2013 00:37:54 GMT-0700 (PDT)' } ];
var newCommentObj = comments;
_.map(newCommentObj, function(key) {
// get commentLikes for each comment
var commentId = key._id,
likes = _.where(commentLikes, {comment_id : commentId});
});
Если нет, как мне это сделать? Каков правильный способ сделать это с помощью нескольких коллекций Mongoose? Я исхожу из традиционного фона MySQL, так что не имея ассоциаций, я привык.
Вы можете сделать это, используя подчеркивание groupBy
а map
- рабочий пример.
Также вы можете комбинировать свои коллекции на "mongodb", используя mapReduce
посмотреть подробности.
newCommentObj
поэтомуnewCommentObj
возвращает это: pastebin.com/7tUNVCdQ . В этом примере есть 2 комментария, и один из них имеет комментарий как. Я пытался упорядочить_id
каждого комментария, но это не помогло.