2016-07-20 3 views
0

Also implementiere ich eine paginierte Tabelle, die einige Datensätze mit Filialdokumenten auflistet und ich Filterfunktionen hinzufügen muss, damit ich die list() Ergebnisse mit dem filtern kann Filialwerte des Filialdokuments.Wie man mongoose list() - filtert Werte nach Filialdokument Wert

Also im Grunde möchte ich unsere Hardwares mit Kategorie ausgewählten Kategorie zu filtern.

Hier ist mein der eigentliche Code;

const options = { 
    perPage: 10, 
    page: (req.query.page > 0 ? req.query.page : 1) - 1, 
    sortBy: {'rank': -1 }, 
    criteria: { 
     status: 'approved', 
     category: { 
      $elemMatch: { 'slug': category } 
     } 
    } 
}; 

Hardware.list(options) 
.then(results => {}); 

Ich bekomme den Fehler; Kann $ elemMatch nicht mit String verwenden.

Also im Grunde muss ich;

  • können die Ergebnisse basierend auf dem Feldwert der Unterdokumente filtern.
  • in der Lage, Ergebnisse zu paginieren
  • in der Lage sein, Ergebnisse zu sortieren.

Wie kann ich das schaffen?

Antwort

0

Versuchen Sie diese Option.

 const options = { 
     perPage: 10, 
     page: (req.query.page > 0 ? req.query.page : 1) - 1, 
     sortBy: {'rank': -1 }, 
     criteria: { 
      status: 'approved', 
      'category.slug' : category 
     } 
    }; 

oder Sie können wie

find() verwenden
 Hardware.find({ 
     'category.slug' : category 

    }, function(err, data){ 
    })