@TipoImya

Найти ид пользователя во всех документах MongoDB, удалить ид пользователя со всех документов, и занести в какой-то определенный?

Мне нужно найти в базе данных все совпадения по ид пользователя, удалить их со всех документов, и добавить в тот, который мне нужно. Как это сделать? MongoDB.
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
Alexandre888
@Alexandre888 Куратор тега Боты
Javascript-разработчик
существует прекрасный метод .mapReduce:
var map = function(){
   if(this.name) {
        emit(this.name, 1);
   }
}

var reduce = function(key, values){
    return Array.sum(values);
}

var res = db.collection.mapReduce(map, reduce, {out:{ inline : 1}}); // < //
db[res.result].find({value: {$gt: 1}}).sort({value: -1});

в частности, он используется для определения, сколько раз документ содержит определённое поле - отталкивайтесь это вышеприведённого кода и дерзайте.
отсебятина

годом ранее я работал с MongoDB, и сделал для себя некоторый вывод: нужно использовать нормальные СУБД по типу MySQL.
с Mongo работать очень трудно, нужно больше прибегать к различным методам чистого джаваскрипта.
взгляните, как легко и просто можно найти дубликаты, используя обычный SQL-запрос:
SELECT
	`column_name`,
	COUNT(`column_name`) AS `count`
FROM
	`table`
GROUP BY
	`column_name`
HAVING 
	`count` > 1

а можно даже не использовать SQL-запрос, а просто указать ограничение UNIQUE для таблицы - оно не пропустит повторяющиеся значения.
и теперь сравните вышеприведённый SQL-запрос, и код для MongoDB - вывод очевиден.
я советую вам переосмыслить своё решение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы