Tôi đang cố truy vấn cơ sở dữ liệu của mình với giá lớn hơn/ít hơn số người dùng được chỉ định. Trong databse của tôi, giá cả được lưu trữ như vậy:
{price: "300.00"}
Theo các tài liệu, điều này sẽ làm việc:
db.products.find({price: {$gt:30.00}}).pretty()
Nhưng tôi không nhận được kết quả trả về. Tôi cũng đã thử {price: {$gt:30}}
.
tôi thiếu gì ở đây?
Có phải vì giá được lưu dưới dạng chuỗi chứ không phải số trong DB? Có cách nào để giái quyết vấn đề này không?
Woah, không biết bạn có thể sử dụng javascript trong truy vấn. Thật sự cảm ơn. Tôi sẽ chuyển đổi nó thành một số dù sao nhưng điều này giúp ích rất nhiều. – Jascination
Bạn sẽ muốn một mức giá chỉ int @Jascination việc thực hiện JS sẽ không sử dụng chỉ mục, vì vậy nó là khá nhiều vô dụng trong trường hợp này, dễ dàng hơn để chỉ làm cho lược đồ của bạn đúng – Sammaye
Hãy tránh $ ở đâu, nó được chạy trong JavaScript và mang lại hiệu suất lớn. $ gt cũng có thể được sử dụng với các loại khác. – Derick