Truyền biến vào hàm Sort() của Mongoose



  • 0_1524139623399_1.PNG
    Mình có một Schema như trên ảnh. Trong đó có 1 cột là Starts, ở bên Client mình đã tạo 1 biến String var sapxep = "Starts". Nhưng lúc dùng hàm Sort mình truyền x vào: Sort(sapxep:5}) thì lại ra kết quả sai. Nếu không truyền biến như thế này thì mình phải viết rất nhiều hàm if để xử lý tùy theo bộ lọc. Mình vẫn sẽ làm được nhưng nhìn vào code khá rối! Mong các bạn hỗ trợ :)

    1_1524139623400_Capture.PNG



  • Mình thì chưa hiểu bạn đang muốn hỏi gì và làm gì.
    Nhưng theo mình nhớ thì sort sẽ chỉ nhận 1 (asc) hay -1 (desc)



  • Sort nhận 1 object. Key của object đó là 1 cột trong dbs, Value là 1 hoặc-1.
    Vấn đề của mình là mình có 1 bộ lọc, khi mình click vào bộ lọc thì nó truyền KeyValue vào hàm Sort().
    Tuy nhiên cái Value thì nó truyền được và lọc được, nhưng cái Key khi truyền vào nó không lọc theo đúng ý mình. Nghĩa là cái Key nó bắt buộc phải là tên 1 cột trong dbs, mình thì mình muốn truyền giá trị vào cho nó, để hàm Sort() dùng cho tất cả bộ lọc ý.



  • Mình nghĩ bạn có thể tạo Object sortCondition trước dựa trên req.body.cachSapXep rồi truyền vào .sort(sortCondition)
    Đó là hình dung thế, còn implement sao thì bạn thử nghiên cứu



  • @CodeConCat
    Cách này mình thử rồi và cũng không được bạn ơi :(



  • @Thành-Nam:
    Cách 1:
    //Cú pháp sau cần node6+ nhe.
    const sortOption = {[sapxep]: tanggiam};

    Cách 2:
    const sortOption = {};
    sortOption[sapxep] = tanggiam;

    Cách 3:
    Nếu bạn đã tích hợp body-parser, bạn có thể gởi trực tiếp từ request luôn.
    const sortOption = req.body.sort; ...limit(2).sort(sortOption).then(...)
    //vdu: req body
    {
    "sort": {
    "age": -1
    }
    }


Log in to reply