Как проверить, являются ли все значения в массиве одинаковой агрегацией mongodb?

#arrays #mongodb #aggregation-framework

#массивы #mongodb #агрегация-фреймворк

Вопрос:

Как проверить, являются ли все значения в массиве одинаковой агрегацией mongodb? Допустим, у меня есть массив ["a","a","a","a","a"] на стадии агрегации. Как проверить, совпадают ли все значения, используя агрегацию mongodb?

И если существует другой подход к массиву объектов [{a:"a",b:"b"},{a:"c",b:"d"}] . Как мне проверить, все ли значения данного свойства объекта одинаковы для всех объектов в массиве, используя агрегацию mongodb?

Я знаю, что в javascript, который я могу использовать array.every() , есть эквивалент в mongodb?

Комментарии:

1. О чем {$eq:[{$size: { $setUnion: <expression> }, 1]} ?

Ответ №1:

Вы можете попробовать использовать $allElementsTrue:

 db.collection.aggregate([
    {
        $project: {
            areSame: {
                $allElementsTrue: {
                    $map: {
                        input: "$key",
                        in: {
                            $eq: [ "$this", { $arrayElemAt: [ "$key", 0 ] } ]
                        }
                    }
                }
            }
        }
    }
])
 

Игровая площадка Mongo

то же решение должно работать для объектов