Hỏi về $where trong mongodb



  • Mình có câu truy vấn như thế này

            Festival.find({ '$where': 'this.timeBegin.toJSON().slice(0, 10) == "2016-09-21"' })
            .populate('thumbnail').populate('typeEvent').exec(function(err, festivals) {
    
                if (err) {
                    return res.jsonp(Utilities.response(false, err));
                } else {
                    return res.jsonp(Utilities.response(true, festivals));
                }
            });
    

    Nếu như mà mình truyền 2016-09-21 như trên thì nó query được . còn nếu mình dùng
    var today= new Date();
    today.getDate()
    rồi truyền vào biến today thì nó không truy vấn được.
    Các bạn giúp mình vs. Thanks All



  • bạn lưu "2016-09-21" là string chứ ko phải kiểu date, new Date() trả về kiểu date, hàm getDate() trả về số (ngày hiện tại) nên query nó không ra là đúng rồi, phải format về string dạng "2016-09-21" mới query được


  • Sailor

    Theo như khuyến cáo của MongoDB thì bạn không nên dùng $where cho ứng dụng vì nó không tốt cho performance.


Log in to reply