如何在mongodb中用文件和embedded文档中的“_id”进行sorting?

我有这个文件:

{ "_id" : ObjectId("5993e9ee92cf241648002a97"), "name" : "test" "subcategories" : [ { "_id" : ObjectId("59953f20f4b8cf0595720e62"), "name" : "subtest", }, { "_id" : ObjectId("59953f20f4b8cf0595720e63"), "name" : "subtest2", } ] }, { "_id" : ObjectId("5993e9ee92cf241648002a98"), "name" : "test2" "subcategories" : [ { "_id" : ObjectId("59953f20f4b8cf0595720e66"), "name" : "subtest3", }, { "_id" : ObjectId("59953f20f4b8cf0595720e69"), "name" : "subtest4", } ] } 

我想通过_id使用mongoose对文档和embedded文档进行sorting。

像这样的东西:

 categoryModel.find({ }).sort({ _id: 1, "subcategories._id": 1 }).exec(function (err, data) {}); 

但我知道只是“_id:1”将工作。
这怎么办?

用JS做

 subcategories.sort(function(a, b) { return a._id.toString().localeCompare(b._id.toString()); }); 

您可以使用填充函数和sorting选项对子文档进行sorting。

 categoryModel .find({}) .populate( {path: 'subcategories', options: { sort: { '_id': -1 } } } )