Desde la versión 3.2 puedes hacerlo con $unwind
en ambas matrices, $cmp
los índices y $match
sólo los índices iguales.
Esta solución completará lo que escribió en caso de que solo tenga el documento de ejemplo. Si tiene más documentos, no sé qué espera obtener en la salida, pero se puede resolver agrupando por _id del documento.
db.test.aggregate([
{
$unwind: {
path: '$dates',
includeArrayIndex: 'dates_index',
}
},
{
$unwind: {
path: '$numbers',
includeArrayIndex: 'numbers_index',
}
},
{
$project: {
dates: 1,
numbers: 1,
compare: {
$cmp: ['$dates_index', '$numbers_index']
}
}
},
{
$match: {
compare: 0
}
},
{
$project: {
_id: 0,
dates: 1,
numbers: 1
}
}
])