Проверка существования значения массива группы MongoDB

#php #arrays #mongodb

#php #массивы #mongodb

Вопрос:

У меня есть записи, которые выглядят так

 [Title] => test - Title - 33
[readedBy] => Array (0 => 5999,
                     1 => 85343
)
[clickedBy] => Array (
)
[deletedBy] => Array (
)
 

И я хочу проверить в моей ГРУППЕ функцию уменьшения

 function (obj, prev) { 
        obj.readedBy.forEach(function (doc){
            if(doc == 800){
                prev.status1.push(obj); 
            }else{
                prev.status2.push(obj);
            }
        }); 
    }
 

Если есть мой идентификатор в соответствующем массиве, чтобы переместить его в правильный массив статуса.
Foreach не является решением, потому что этот массив идентификаторов увеличивается> 100 тыс.
Есть ли хороший способ? Или это мусор для решения?

Ответ №1:

До сих пор, используя mongodb map / reduce из того, что я собрал, большую часть времени, когда вы используете map reduce, вы будете страдать от процесса O (n), что означает, что в конечном итоге вы будете выполнять .forEach() в своих наборах результатов. Они становятся быстрее по мере добавления узлов. когда вы разделяете свои коллекции.