结合2 MongoDB集合对象下划线或其他东西
Combining 2 MongoDB collection objects with underscore or something else?
我正在对所有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
来组合你的集合,在这里查看更多细节。
相关文章:
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 生成pdf或其他非html文件时的错误处理
- 什么's导致了512字节的限制-openkeyval或其他什么
- V8或其他C++JavaScript解释器中的Continuations
- 如何在本地存储(或其他数据库)上安全地保存敏感访问代码
- 将DIV包裹在锚标签内或其他方式
- 拒绝与.htaccess或其他任何内容的主链接
- 如何使用javascript、jquery或其他javascript框架过滤数据
- 使用Javascript创建的Cookie在C#代码中不可访问..任何原因或其他选择
- 控制立方体或其他几何体的每个面,分为三.js
- 如何使用cURL或其他方式在点击时执行事件
- getList 的响应应该是一个数组,而不是一个对象或其他东西
- 浮景图数据或其他原因的最大长度,即使渲染轴,水平条也可能不显示
- 使用appendchild或其他方法向ul添加html代码而不是纯文本
- 如何上传文件不使用多部分编码?(可能使用八位字节或其他什么)
- 是否可以将条件语句或其他javascript作为参数传递到ember句柄中
- 用Javascript或其他方法通过语音读取整个HTML页面(离线)
- Javascript引擎(或其他可嵌入语言),用于类似mongodb的查询执行环境和多线程
- 如何在Google Table(或类似的)中包含火花线和其他逐行图形
- 使用javascript绘制动画线(没有Raphael或其他插件)