Как соотнести дочерний документ в mongodb? - PullRequest
0 голосов
/ 30 марта 2020

Как я могу отнести таблицу к дочернему документу в другой таблице в mongodb?

Например, видео можно добавить только в родительскую категорию или в дочернюю категорию. Понравилась классификация видео системного сайта удемы. Я пытался использовать mongodb refPath, но не могу динамически использовать в этой системе.

Как мне выполнить этот запрос?

Моя схема видео:

...
const VideoSchema = new mongoose.Schema(
  {
    category_ids: [
      {
        model_id: {
          type: mongoose.Schema.Types.ObjectId,
          refPath: 'category_ids.model_name'
        },
        model_name: {
          type: String,
          required: true,
          enum: ['category', 'subcategory']
        }
      }
    ],
    ...
  }
)
module.exports = restful.model('video', VideoSchema)

1 Ответ

0 голосов
/ 31 марта 2020

Я решил свою проблему. Когда я добавил эти две схемы, запрос работал.

require('../models/category')
require('../models/subcategory')

И затем запустил метод поиска с помощью populate.

// ...
require('../models/category')
require('../models/subcategory')

Video.find({
      user_id: req.body.user_id
    })
      .populate({
        path: 'category_ids.model_id'
      })
      .exec()
      .then((videos) => {
        console.log(videos)
      })
// ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...