bro-dev
@bro-dev

Как удалить дубликаты поля типа массив?

Как удалить дубликаты поля типа массив? за 1 запрос к базе.
есть документ
{
ar:[0,1,2,1,2,3,1,2,3,1,2,3,3,1,3,1,1,3,2,1,3,2,1,2,3,1,3,2]
}

Как сделать чтобы там остались только уникальные значения? Пока что сделано все через node то есть получает документ, обрабатывает и записывает, проблема в том что там этих записей больше миллиона из них уникальных треть. и за счет этих туда сюда жрется память и проц, хотелось бы чтобы за 1 запрос монга сама внутри сделала, возможно такое?
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 3
riot26
@riot26
<:З )~~
let ar = [0,1,2,1,2,3,1,2,3,1,2,3,3,1,3,1,1,3,2,1,3,2,1,2,3,1,3,2];
let result = [...new Set(ar)];
console.log(result);
Ответ написан
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
function onlyUnique(value, index, self) { 
    return self.indexOf(value) === index;
}

var a = [0,1,2,1,2,3,1,2,3,1,2,3,3,1,3,1,1,3,2,1,3,2,1,2,3,1,3,2];
var unique = a.filter( onlyUnique );
Ответ написан
@dmitrygavrish
db.collection.distinct(field, query, options):
https://docs.mongodb.com/manual/reference/method/d...

для выполнения данного запроса через mongoose, можете начать поиск с:
https://stackoverflow.com/questions/6043847/how-do...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы