У меня сегодня немного проблемы с Mongoose / MongoDB. У меня есть ситуация, когда мне нужно вернуть все элементы из коллекции, и это означает, что я не передаю никаких параметров поиска в mongoose.find()
.
Это контроллер, который обрабатывает запрос get all:
exports.get_all_posts = async (req, res, next) => {
const { params } = req;
const { sortby } = params;
//Sortby param takes two arguments for now: most_recent, oldest
try {
const getAllPosts = await BlogPost.find({}, { _id: 0 });
console.log(getAllPosts);
if (!getAllPosts) throw new Error('Could not get blog posts.');
res.json({
posts: date_.sort(getAllPosts, sortby)
});
} catch (error) {
next(error);
}
};
Именно здесь, я думаю, возникла проблема:
const getAllPosts = await BlogPost.find({}, { _id: 0 });
Я передаю пустой параметр поиска и затем удаляю _id
, чтобы он не выдает ошибку, сообщающую, что мне нужно предоставить _id
.
Однако мне все еще нужно иметь возможность извлекать все сообщения. Мои предметы из этой коллекции возвращаются как обычно, только без их _id
.
Вот моя модель для постов в блоге:
const mongoose = require('mongoose');
const BlogPostSchema = new mongoose.Schema({
date: {
type: Date,
required: true
},
title: {
type: String,
required: true
},
author: {
type: String,
required: true
},
likes: {
type: Number,
required: false
},
post_body: {
type: String,
required: true
},
description: {
type: String,
required: true
},
tags: [
{
type: String,
required: false
}
],
featuredImage: {
type: String,
required: false
},
draft: {
type: Boolean,
required: true
}
});
module.exports = mongoose.model('BlogPost', BlogPostSchema);
Следует отметить, что я не определил _id
. Mon goose автоматически добавляет в поле _id
перед сохранением схемы, поэтому я думаю, что без нее все нормально, как это было в прошлом.
Заранее спасибо за прочтение и любой вклад!