#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() в своих наборах результатов. Они становятся быстрее по мере добавления узлов. когда вы разделяете свои коллекции.