Javascript 将2个MongoDB集合对象与下划线或其他内容组合?

Javascript 将2个MongoDB集合对象与下划线或其他内容组合?,javascript,mongodb,mongoose,underscore.js,Javascript,Mongodb,Mongoose,Underscore.js,我正在查询所有评论和评论。基本上,我在视图中循环浏览评论集合,但我需要将commentLikes与评论关联起来。现在commentLikes引用了comments.\u id为commentLikes.comment\u id 我正在考虑使用下划线,因为看起来有一些不错的实用函数,但我会使用哪些呢?我最后玩了uz。where,但我不确定这是否是适合这份工作的工具 这是最好的方法吗 var comments = [ { submission_id: '513d3702b99f8b1ca50000

我正在查询所有评论和评论。基本上,我在视图中循环浏览评论集合,但我需要将commentLikes与评论关联起来。现在commentLikes引用了comments.\u id为commentLikes.comment\u id

我正在考虑使用下划线,因为看起来有一些不错的实用函数,但我会使用哪些呢?我最后玩了uz。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});

});

如果没有,我应该怎么做?对于多个猫鼬收藏,正确的方法是什么?我来自传统的MySQL背景,所以我已经习惯了没有关联。

您可以使用下划线的groupBy并映射工作示例


此外,您还可以使用mapReduce在mongodb上合并您的集合以获取更多详细信息。

Hm好的,所以我想我可能有一个问题,因为返回的内容实际上没有字符串化,所以newCommentObj将返回以下内容:。在本例中,有2条注释,其中一条注释如下。我试图对每条评论的id进行字符串化,但没有任何帮助。事实上,没关系。当它打印到控制台时,似乎没有显示嵌套的内容。。。奇怪的但它们实际上是被发送到视图中的。这就解决了。谢谢