【发布时间】:2016-05-18 17:45:55
【问题描述】:
基本上,我有两个来自 Mongodb 的 _id 数组,我试图比较/获取它们的差异。
数组 1 直接来自 document.find() 调用。数组 2 来自一个 document.Aggregate 调用,然后我从它们中_.pluck _id。
例如,数组 1 可能看起来像 [ 1 , 57, 58, 100 ]。
例如,数组 2 可能看起来像 [ 1 , 2, 3, 4, 55, 100 ]。
我要找出区别并返回和[ 57, 58 ]。
为此,我一直使用 lodash 作为库。我尝试了以下两种方法:
_.difference(array1, array2)
和
_.filter(array1, function(obj){ return !_.findWhere(array2, obj); });
但两者似乎都不起作用。如果可能的话,我希望能得到一些帮助。
【问题讨论】:
-
如果您要汇总结果,为什么不使用
$setDifference运算符并在服务器端完成而不是在客户端完成 - 有什么具体原因吗? -
另外,我相信您正在取回 ObjectId 对象。如果是这种情况,那么
_.difference将无法工作,因为它只对原语进行操作。
标签: arrays node.js mongodb lodash