$objectToArray
convertir data
formato de valor-clave de objeto a matriz
$filter
para iterar el bucle de la matriz convertida anterior
- marque
$and
condiciones
$toDate
para obtener data
desde la fecha de la cadena
$month
para seleccionar el mes a partir de la fecha y $year
para seleccionar el año
$in
verifique la condición si el mes está en una serie de meses y el año está en una serie de años
$arrayToObject
volver a convertir a objeto desde una matriz de clave-valor
var years = [2021];
var months = [5];
db.collection.aggregate([
{
$project: {
data: {
$arrayToObject: {
$filter: {
input: { $objectToArray: "$data" },
cond: {
$and: [
{ $in: [{ $year: { $toDate: "$$this.k" } }, years] },
{ $in: [{ $month: { $toDate: "$$this.k" } }, months] }
]
}
}
}
}
}
}
])
Patio de juegos