如何从未排序的ObjectIds列表创建唯一的猫鼬ObjectIds列表?

时间:2015-02-09 08:06:30

标签: node.js mongodb mongoose underscore.js lodash

Mongoose noob问题:我有两个Mongoose ObjectId对象列表,我合并为一个。一些ObjectIds是重复的,我不想将它们保存到我的数据库中。是否有一个猫鼬工具可以帮助我对ObjectIds进行数据操作,并使用唯一的ID返回列表?如果没有,写这个的最佳方式是什么?如果有帮助的话,我已经安装了lodash。

2 个答案:

答案 0 :(得分:0)

您可以使用此代码段获取唯一元素。我不知道任何内置的mongoose功能(您可以尝试unique: true选项进行架构定义,但我不确定这是否适合您)。

var unique = [], tempObj = {};
objectIdsArray.forEach(function (val) {
    var stringified = val.toString();
    if (!tempObj[stringified]) {
        unique.push(val);
        tempObj[stringified] = val;
    }
});

答案 1 :(得分:0)

我不知道这是否是最佳的,但您可以使用lodash uniq方法获取重复的免费数组。我想这个例子对你有帮助。

_.uniq([1, 2, 1]); // → [1, 2]

您可以阅读更多lodash uniq.