【问题标题】:Difference between two arrays of Mongo Document _idsMongo Document _ids 的两个数组之间的区别
【发布时间】: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


【解决方案1】:

忽略。原来过滤器代码有效。这是我的数据库出错了。

_.filter(array1, function(obj){ return !_.findWhere(array2, obj); });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多