MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Autocomplete gefiltert mit mongodb

Verwenden Sie das $where Pipeline-Phase aus der Aggregationspipeline nachdem Sie Ihre Suche durchgeführt haben, um unerwünschte Dokumente herauszufiltern. Also zum Beispiel

Client.aggregate([
  {
    "$search": {
      "autocomplete": {
        "query": `${request.query.term}`,
        "path": "name",
        "fuzzy": {
          "maxEdits": 2,
          "prefixLength": 3,
        },
      },
    },
  },
  { 
    $match: { city: 'city-name' } 
  },
  {
    $limit: 3
  },
  {
    $project: {
      "_id": 0,
    }
  }
]);