2016-10-19 2 views
0

Ich habe einfache Sammlung:Mehrere Such- und Filter Meteor & MongoDB

nom: { 
    type: String, 

}, 
prenom:{ 
    type: String, 

}, 

categorie:{ 
    type: String, 

}, 
age:{ 
    type:String, 

    } , 

ville : { 

    type : String 

    } 

ich einfache Möglichkeit, mehrere Such- und Filterelemente in eine Tabelle finden möchten. Filtern Sie zum Beispiel nach Name und Alter oder filtern Sie nach Alter und Stadt. oder Filter durch alle von ihnen Hier ist meine Tabelle: my table

In meinem Fall, was ist der beste Weg, um diese mehrere Filter auf mongodb und Meteor ohne suchmaschinen Paket zu machen

Antwort

0

Dies ist, wie ich meine Suchen neigen, so dass es auch ähnliche Ergebnisse findet ts auch. Wenn also in meinem Ergebnis ein Buchstabe "A" steht, wenn ich nach "A" suche, wird alles mit dem Buchstaben "A" angezeigt, bis ich genauer werde.

Beachten Sie, dass Sie den Suchwert und die Suchschlüssel möglicherweise in Kleinbuchstaben setzen möchten, weil "A"! = "A" und nichts zurückgibt.

Ich legte auch einen int-Wert, den Sie nur, wenn diese Frage kam.

let collection = yourCollection.find({ 
     "nom": { 
      $regex: ".*CONDITION_VALUE.*" 
     }, 
     "prenom": { 
      $regex: ".*CONDITION_VALUE.*" 
     }, 
     "categorie": { 
      $regex: ".*CONDITION_VALUE.*" 
     }, 
     "age": { 
      $gt: minAge, 
      $lt: maxAge 
     }, 
     "ville": { 
      $regex: ".*CONDITION_VALUE.*" 
     } 
}); 
+0

Vielen Dank –

0

Bei der Verwendung von direkten Anfragen auf MongoDB Sie können die folgenden Beispiele:

der einfachste Weg Existenz eines Feldes zu überprüfen ist, durch die $exist mit:

db.collectionName.find({fieldName: {$exists: true}}) 

Wenn Sie nach bestimmten Feldwert suchen:

db.collectionName.find({'fieldName': 'value'}) 

Kombination von $or und existieren kann so aussehen:

db.collectionName.find({ $or: [ {name: {$exists: true}}, {age: {$exists: true}} ] }) 

Für mehrere $ oder Sie die folgende Abfrage verwenden:

db.collectionName.find({ $or: [ {name: {$exists: true}}, {age: {$exists: true}} ] }, 
         { $or: [ {age: {$exists: true}}, {city: {$exists: true}} ] }) 
+0

Dankten für die Beantwortung ich weiß nicht, wie $ auf der Suche nach mehreren Elementen in der Sammlung helfen existieren könnte, die bereits in meinem Fall sind alle Spalten –

+0

bestehen Wenn Sie nach bestimmten Namen suchen, können Sie verwenden: { ‚name‘ : 'aaa'} usw. für jedes Feld, das Sie benötigen. – Rotem