如何按" _id"排序在mongodb中的文档和嵌入文档?

时间:2017-09-13 10:31:52

标签: node.js mongodb mongoose

我有这个文件:

{
    "_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",
        }
    ]
}

我想使用mongoose通过_id对文档和嵌入文档进行排序。

这样的事情:

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

但我知道" _id:1" 会起作用。
怎么办呢?

2 个答案:

答案 0 :(得分:1)

您可以使用populate函数和排序选项对子文档进行排序。

$scope.save = function (index) {
    $scope.todos[index].editing = false;
    $scope.todos[index].todoDate = new Date();
};

答案 1 :(得分:1)

用JS

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