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
- is related to
-
DOCS-1111 Misleading/ambiguous statement in the index page regarding sort and query
- Closed