-
$objectToArray
chuyển đổi dữ liệu data
đối tượng với định dạng khóa-giá trị của mảng
-
$filter
để lặp lại vòng lặp của mảng đã chuyển đổi ở trên
- kiểm tra
$and
điều kiện
-
$toDate
để lấy data
từ ngày chuỗi
-
$month
để chọn tháng từ ngày và $year
để chọn năm
-
$in
kiểm tra điều kiện nếu tháng nằm trong mảng tháng và năm nằm trong mảng năm
-
$arrayToObject
chuyển đổi trở lại đối tượng từ mảng khóa-giá trị
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] }
]
}
}
}
}
}
}
])
Sân chơi