2015-02-09 3 views
1

Вопрос Mongoose noob: У меня есть два списка объектов Mongoose ObjectId, которые я объединил в один. Некоторые из ObjectIds дублируются, и я не хочу сохранять их в моей базе данных. Есть ли инструмент mongoose, который поможет мне манипулировать данными ObjectIds и вернуть мне список только с уникальными идентификаторами? Если нет, то какой оптимальный способ написать это? У меня установлен lodash, если это помогает.Как создать список уникальных объектов объекта Mandoose из несортированного списка ObjectIds?

ответ

0

Вы можете использовать этот фрагмент, чтобы получить уникальные элементы. Я не знаю о какой-либо встроенной функции mongoose для этого (вы можете попробовать опцию unique: true для определения схемы, но я не уверен, что это сработает для вас).

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

Я не знаю, что это является оптимальным или нет, но вы можете использовать lodashuniq метод, чтобы получить дубликат бесплатный массив. Я думаю, этот пример поможет вам.

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

Вы можете прочитать больше lodash uniq.

+0

это не обязательно работать с ObjectId – ktkaushik

Смежные вопросы