Vì không có cách nào để biết trình điều khiển bạn sử dụng ở đây là giải pháp shell:
db.foo.find({
"Asset.Metadata.Platforms.Platform": {
$elemMatch: {
"@name": VAR_PLATFORM,
"PublishingRanges.PublishingRange": {
$elemMatch: {
"@startdate": {$gt: VAR_START},
"@enddate": {$lt: VAR_END}
}
}
}
}
})
Nhân tiện, bạn có thể đơn giản hóa cấu trúc tài liệu bằng cách bỏ qua Platform
và PublishingRange
và gán mảng cho Platforms
một PublishingRanges
tương ứng.