Search code examples
vue.jsmongoosefuzzy-searchfeathersjs

Fuzzy search using mongoose from vue client


Getting error unknown top level operator $regex

search.vue `

let questDocuments = await conversation
        .find({ query: { $limit: 100, $search: q, skippop: true } })
        .then(response => {`

q is the string being passed

service hook

before: {
    all: [],
    find: [
      hookBeforeFind,
      search({
        fields: ["label"],
        deep: true
      })      
    ],

Model

const conversation = new Schema(
    {
      label: { type: String, required: true },
      nodeId: { type: String, required: true },
      details: { type: String },
      url: { type: String },
      creator: { type: String },
      handle: { type: String },
      date: { type: String },

From search bar add expression to search. E.g "the"


Solution

  • Add $regex to the whitelist option of the Mongoose service:

    app.use('/messages', service({
      Model,
      whitelist: [ '$regex' ]
    }));