$objectToArray
konvertere data
objekt til matrix-nøgleværdi-format
$filter
at iterere loop af ovenstående konverterede matrix
- tjek
$and
betingelser
$toDate
for at få data
fra strengdato
$month
for at vælge måned fra dato og $year
for at vælge år
$in
tjek i tilstanden, hvis måneden er i en række måneder, og året er i en række år
$arrayToObject
konverter tilbage til objekt fra nøgleværdi-array
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] }
]
}
}
}
}
}
}
])
Legeplads