$objectToArray
konvertera data
objekt till array nyckel-värde format
$filter
för att iterera loop av ovan konverterade array
- kontrollera
$and
villkor
$toDate
för att få data
från strängdatum
$month
för att välja månad från datum och $year
för att välja år
$in
kontrollera i skick om månaden är i en mångfald av månader och året är i en mängd år
$arrayToObject
konvertera tillbaka till objekt från nyckel-värde 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] }
]
}
}
}
}
}
}
])
Lekplats