We have the following document structure :
"Document" : {
"arvTreatmentStarted" : "started",
"followUps" : [
{
"followUpDate" : "2012-01-01",
"arvDrugs" : {
"dispenseDoseQuantity" : "30",
"dispenseDoseDaysSupply" : "144"
},
"followUpStatus" : "Alive on ART"
},
{
"followUpDate" : "2013-01-01",
"arvDrugs" : {
"dispenseDoseQuantity" : "30",
"dispenseDoseDaysSupply" : "144"
},
"followUpStatus" : "Alive on ART"
}
]
}
This document contains a nested property called Follow Ups which is an array of objects. In these objects there is a property called followUpDate .
Business Rule : We need to find the first Follow Up in the follow ups array and check if it's followUpDate is within a particular range and if it is not, exclude the whole Document from the search result set.
As an example if we had the date range 2013 - 2014
- It would include the Document in the result set because the query would consider the followUpDate for the second Follow Up in the list as valid.
- However this should not happen according to the Business rule as the First Follow up has a followUpDate that is not within the date range.
Below is the sample of our nested query