#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 ] } ]
}
}
}
}
}
}
])
то же решение должно работать для объектов