Поиск с req.query и regex

У меня есть модель:

const product = new Schema({
  title: String,
  price: Number,
  description: String,
  material: String,
  status: {
    type: Number,
    default: 0
  },
  category: {
    type: Schema.Types.ObjectId,
    ref: 'Category'
  },
  subcategory: {
    type: Schema.Types.ObjectId,
    ref: 'Subcategory'
  },
  details: [{
    color: String,
    size: [String],
    img: [String],
    detailStatus: {
      type: Number,
      default: 0
    }
  }]
})

Хочу с помощью req.query и regex осуществить поиск данных по subcategory и category, внутри этих двух есть поля как title - название category и subcategory, дело в том что не удается найти их код:

if(req.query.search){
      const regex = new RegExp(escapeRegex(req.query.search))
      product = await Product.find({
        $or: [
          {title: regex}, {_id: regex}, {subcategory: {title: regex}}
        ]
      })
      .populate([
        {path: 'subcategory', select: 'title'},
        {path: 'category', select: 'title'},
      ])
      .lean()
    }

Приходит следующая ошибка:

CastError: Cast to ObjectId failed for value "{ title: /Футболка\ оверсайз/ }" (type Object) at path "subcategory" for model "Product"
    at model.Query.exec (C:\coding\market-backend\node_modules\mongoose\lib\query.js:4803:21)
    at productPage (C:\coding\market-backend\controllers\product.js:49:8)
    at processTicksAndRejections (internal/process/task_queues.js:95:5) {
  messageFormat: undefined,
  stringValue: '"{ title: /Футболка\\ оверсайз/ }"',
  kind: 'ObjectId',
  value: { title: /Футболка\ оверсайз/ },
  path: 'subcategory',

И так же не получается делать поиск с помощью _id, пожалуйста помогите.


Ответы (0 шт):