$objectToArray
konwertuj data
obiekt do formatu klucz-wartość tablicy
$filter
do iteracji pętli powyższej przekonwertowanej tablicy
- sprawdź
$and
warunki
$toDate
aby uzyskać data
od daty ciągu
$month
aby wybrać miesiąc od daty i $year
wybrać rok
$in
sprawdź, czy miesiąc jest w tablicy miesięcy, a rok w tablicy lat
$arrayToObject
przekonwertuj z powrotem na obiekt z tablicy klucz-wartość
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] }
]
}
}
}
}
}
}
])
Plac zabaw