drudge / mongoose-timestamp

Adds createdAt and updatedAt date attributes that get auto-assigned to the most recent create/update timestamp
Other
308 stars 64 forks source link

Retrive documents based on sort order for array of subdocuments #35

Closed penmets closed 8 years ago

penmets commented 8 years ago

I have documents like below(i am using node.js and mongoose).

{                                                             
        "id" : 1,                                             
        "name" : "strs",                                      
        "subs" : [                                            
                {                                             
                        "sortorder" : 5,                          
                        "type" : "volvo"                          
                },                                            
                {                                             
                        "sortorder" : 2,                          
                        "type" : "benz"                          
                }                              
        ]                                                     
}                                                             
{                                                             
        "id" : 2,                                             
        "name" : "newname",                                   
        "subs" : [                                            
                {                                             
                        "sortorder" : 3,                          
                        "type" : "volvo"                           
                },                                            
                {                                             
                        "sortorder" : 1,                          
                        "type" : "benz"                           
                }                                    
        ]                                                     
}     

When i query for subs.type: volvo , i need to sort the documents based on the sortorder for volvo. I want output like below.

{                                                             
        "id" : 2,                                             
        "name" : "newname",                                   
        "subs" : [                                            
                {                                             
                        "sortorder" : 3,                          
                        "type" : "volvo"                           
                },                                            
                {                                             
                        "sortorder" : 1,                          
                        "type" : "benz"                           
                }                                    
        ]                                                     
}     
{                                                             
        "id" : 1,                                             
        "name" : "strs",                                      
        "subs" : [                                            
                {                                             
                        "sortorder" : 5,                          
                        "type" : "volvo"                          
                },                                            
                {                                             
                        "sortorder" : 2,                          
                        "type" : "benz"                          
                }                              
        ]                                                     
}