Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-1521

Sort collections by a sub-element array feature using index gives a correct order

      I have this kind of collection :

       
      "File" 
      { 
      "_id" : { "$oid" : "4f730e3bb8be296910000180"}
      , "Name" : "File1.jpg"
      , "Folders" : [ 
                      { "F_id" : { "$oid" : "4f72f503b8be296d78000166"} , "Ord" : 1} 
                      , { "F_id" : { "$oid" : "4f730eedb8be296e78000180"} , "Ord" : 3}
                  ]
      }
      { 
      "_id" : { "$oid" : "4f730e3ab8be296978000181"} 
      , "Name" : "File2.jpg"
      , "Folders" : [ 
                      { "F_id" : { "$oid" : "4f72f503b8be296d78000166"} , "Ord" : 2} 
                      , { "F_id" : { "$oid" : "4f730eedb8be296e78000180"} , "Ord" : 2}
                      , { "F_id" : { "$oid" : "4f730eedb8be296e78000132"} , "Ord" : 1}
                  ] 
      }
      { 
      "_id" : { "$oid" : "4f730e38b8be296e78000182"}
      , "Name" : "File3.jpg"
      , "Folders" : [ 
                      { "F_id" : { "$oid" : "4f72f503b8be296d78000166"} , "Ord" : 3} 
                      , { "F_id" : { "$oid" : "4f730eedb8be296e78000180"} , "Ord" : 1}
                  ]
      }
      

      "Folders" can contains a lot of more elements, and reflects in which Folder "F_id" the file is available, and at what order it take place "Ord" in this folder.
      Then I would like to simply get all the Files available in one Folder in the correct Order.

      If I do something like :

       
      File.find( {"Folders.F_id":{"$oid":4f72f503b8be296d78000166} } ).sort({"Folders.Ord":1}) ;
      

      I get the incorrect Order !

      I thought I should use map/reduce or aggregation framework to perform this...

      But when I create an index:

       
      File.ensureIndex("Folders.F_id" : 1 , "Folders.Ord" : 1)
      

      With the same query :

       
      File.find( {"Folders.F_id":{"$oid":4f72f503b8be296d78000166} } ).sort({"Folders.Ord":1}) ;
      

      I get the correct Order I expected !

      Is it a bug, a stroke of luck or a feature I can count on in the future ??

      If it is a feature, this should be written on the doc ! (as there is no more needs to use map/reduce nor aggregation framework)

      Regards

            Assignee:
            kay.kim@mongodb.com Kay Kim (Inactive)
            Reporter:
            braloum braloum
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              10 years, 50 weeks, 6 days ago