Как запросить указанное значение свойства c Post by slug в mon goose вместо id? - PullRequest
0 голосов
/ 12 апреля 2020

Я знаю, как запросить конкретную c запись по идентификатору. Однако я хочу использовать свойство slug поста вместо его идентификатора, чтобы запросить его. Как мне это сделать?

//Instead of req.params.id, we have req.params.slug instead
//How do get the post in this case if the Post database model has a slug property.  
//We have the req.params.slug

//This is what needs to be changed
const post = await Post.findById(req.params.id, (error, post) => {
    console.log(error, post)
  }).populate('author')

Вот модель сообщения:

const mongoose = require('mongoose')

const PostSchema = new mongoose.Schema({
  title: {
    type: String,
    required: true
  },

  subtitle: {
      type: String,
      required: true,
  },
  author: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User',
      required: true
  },

  content: {
      type: String,
      required: true
  },
  image: String,
  category: String,
  subCategory: String,
  createdAt: {
      type: Date,
      default: new Date() 
  }
})
module.exports = mongoose.model('Post', PostSchema)

1 Ответ

1 голос
/ 12 апреля 2020

вы можете использовать find(), если у вас много документов с одинаковым slug или findOne(), если slug уникально для каждого документа

Post.find({ slug: req.params.slug }, (error, post) => {
    console.log(error, post)
});

или

Post.findOne({ slug: req.params.slug }, (error, post) => {
    console.log(error, post)
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...