$objectToArray
converteer data
object naar array sleutel-waarde formaat
$filter
om de lus van de bovenstaande geconverteerde array te herhalen
- vink
$and
aan voorwaarden
$toDate
om data
te krijgen vanaf tekenreeksdatum
$month
om de maand te selecteren vanaf de datum en $year
jaar selecteren
$in
check-in staat als de maand in een reeks van maanden staat en het jaar in een reeks van jaren
$arrayToObject
converteer terug naar object van sleutel-waarde-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] }
]
}
}
}
}
}
}
])
Speeltuin