У меня есть записи, как следующее:
{ _id : 1 , data : [7,4,0] }
{ _id : 2 , data : [4,5,6] }
{ _id : 3 , data : [6,7,8] }
Я хочу объединения в массив двух данных.
Например, если я хочу найти объединение массива данных идентификатора 1 и 2, запрос я использую:
db.coll.aggregate(
{
$match : {
_id: { $in: [1, 2] }
}
},
{
$group: {
_id: 0,
s0: { $first: "$data"},
s1: { $first: "$data"}
}
},
{
$project: {
_id: 0,
ans: { $setUnion: [ "$s0","$s1"]}
}
}
).pretty()
Но ответ только
{7, 5, 0}
который является данными только идентификатора 1.
Как добиться объединения между двумя или более документами на одном поле массива?
PS: Я использую MongoDB 3.4
Что делать, если я хочу выполнить пересечение, тогда начальное значение будет пустым, а результат будет пустым, а input - вложенным массивом – Ars