代码之家  ›  专栏  ›  技术社区  ›  skylake

Mongoose:按嵌套字段排序[重复]

  •  0
  • skylake  · 技术社区  · 7 年前

    我正在尝试使用嵌套字段对数据进行排序,该字段名为 orderIndex

    router.get("/", (req, res) => {
      Book.find({ _id: req.params.id })
    
        .sort({ 'Book.chapters.orderIndex': "asc" }) //doesn't work
    
        .then(books => {
          res.render("books/index", {
            books: books
          })
        });
    });
    

    示例 Book 外观:

    //Book
        {
            "_id": {
                "$oid": "1234517fe46cf86900af82f"
            },
            "chapters": [
                {                 
                    "_id": {
                        "$oid": "a1"
                    },
                   "title": "first book",
                   "orderIndex": "1",
                },
                 {                 
                    "_id": {
                        "$oid": "5678798be6bb05e4427ee65"
                    },
                   "title": "second book",
                   "orderIndex": "2",
                },
                //..some more
            ]
        }
    
    1 回复  |  直到 7 年前
        1
  •  8
  •   Alejandro Montilla    7 年前

    改变

    .sort({ 'Book.chapters.orderIndex': "asc" })
    

    .sort({ 'chapters.orderIndex': 1 })
    

    看看这个 link

    这里是 sort 文档