2015-04-22 19 views
6

Tôi đang sử dụng phần tiếp theo làm ORM phụ trợ của mình. Bây giờ tôi muốn làm một số nơi hoạt động trên một ngày.Phân tích lại câu lệnh Where with date

Thêm Speceficly tôi muốn nhận được tất cả dữ liệu mà một ngày là từ bây giờ và 7 ngày trở lại.

Vấn đề là tài liệu không xác định những hoạt động bạn có thể làm trên Datatypes.DATE

bất cứ ai có thể chỉ cho tôi đi đúng hướng?

+3

Vì vậy, bạn đã thử $ lt: (ngày mới()) và $ gt: (...) thay thế ... với thời gian ngay bây giờ - 7 ngày – Molda

Trả lời

6

Cũng giống như Molda nói, bạn có thể sử dụng $gt, $lt, $gte hay $lte với một ngày:

model.findAll({ 
    where: { 
    start_datetime: { 
     $gte: moment().subtract(7, 'days').toDate() 
    } 
    } 
}) 
4

tôi phải nhập khẩu những biểu tượng khai thác từ sequelize và sử dụng như vậy.

const { Op } = require('sequelize') 

model.findAll({ 
    where: { 
    start_datetime: { 
     [Op.gte]: moment().subtract(7, 'days').toDate() 
    } 
    } 
}) 

Theo các tài liệu, vì lý do bảo mật này được coi là tốt nhất.

Xem http://docs.sequelizejs.com/manual/tutorial/querying.html để biết thêm thông tin.

Sử dụng phần tiếp theo mà không có bí danh nào sẽ cải thiện bảo mật. Một số khung công tác tự động phân tích cú pháp đầu vào của người dùng thành các đối tượng js và nếu bạn không thể khử trùng đầu vào của mình, có thể tiêm đối tượng với các toán tử chuỗi để tuần tự hóa.

(...)

Để bảo mật tốt hơn nó là rất cao nên sử dụng Sequelize.Op và không phụ thuộc vào bất kỳ bí danh chuỗi chút nào. Bạn có thể giới hạn bí danh ứng dụng của bạn sẽ cần bằng cách đặt tùy chọn toán tửAliases, hãy nhớ khử trùng đầu vào của người dùng đặc biệt là khi bạn trực tiếp chuyển chúng đến Phương pháp tuần tự.

+0

Chào mừng bạn đến với Stack Overflow! Để nâng cao hơn nữa chất lượng câu trả lời của bạn, hãy nhớ rằng các liên kết đến các trang web khác có thể không khả dụng và do đó, bạn nên sao chép thông tin có liên quan từ tài liệu bên ngoài dưới dạng trích dẫn trong nội dung câu trả lời của bạn. – Pac0

Các vấn đề liên quan