MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Bỏ qua các giá trị không xác định được truyền vào tham số đối tượng truy vấn cho hàm Tìm của Mongoose?

Bạn phải lọc res.query của mình đối tượng từ các giá trị không xác định / trống trước tiên, sau đó chuyển nó vào find hàm số. Nếu bạn chỉ có một vài thuộc tính, bạn có thể sử dụng if tuyên bố:

const query = req.query;
const conditions = {};

if (query.what) {
  conditions.what = query.what;
}

if (query.where) {
  conditions.where = query.where;
}

....


Sound.find(conditions, function () {});

Hoặc nếu có nhiều thuộc tính, bạn có thể lặp lại chúng:

const query = req.query;
const conditions = Object.keys(query)
  .reduce((result, key) => {
    if (query[key]) {
      result[key] = query[key];
    }
    return result;
}, {}); 

Sound.find(conditions, function () {});

Ngoài ra, tôi không khuyên bạn nên xóa các thuộc tính khỏi res.query thực tế đối tượng - delete res.query.what - bởi vì bạn sẽ không thể sử dụng nó trong một phần mềm trung gian khác nếu bạn muốn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Việc chèn nhiều tài liệu trong Bộ sưu tập sao băng có hoạt động giống như mongodb thuần túy không?

  2. Nhận số lượng Trường trong mỗi tài liệu thông qua truy vấn bằng trình điều khiển java MongoDB

  3. Truy cập cơ sở dữ liệu sản xuất Meteor

  4. MongoDB:Mapreduce:Reduce-> chưa hỗ trợ nhiều

  5. Ứng dụng NodeJS 2 dòng bị treo trên mongoose.connect () trong khi cố gắng kết nối với cơ sở dữ liệu mongolab MongoDB