у меня есть эта схема для простого твиттерного приложения
const userSchema = new Schema ({
loginInfo: {
username: String,
email: String,
password: String
},
tweets: [{
content: String,
likes: Number,
comments: [{
owner: String,
content: String,
likes: Number
}]
}],
followers: [String],
following: [String]
})
, и я хочу создать конечную точку, которая будет возвращать только твит с тем же _id , который был задан в качестве параметра на URL .. Я сделал это решение ниже и оно работает правильно, но я считаю, что есть гораздо лучшее решение, чем это ..
const handleTweet = (User) => (req,res) => {
const { id } = req.params;
let theTweet = [];
User.findOne({ "tweets._id": id})
.then(user => {
user.tweets.forEach(tweet => {
if(tweet._id.toString() === id)
return theTweet.push(tweet)
})
res.json(theTweet)
})
.catch(err => res.json(err))
}
module.exports = handleTweet;
Еще один вопрос: Лучше ли создавать вложенные схемы как это или создание различных моделей для каждой схемы (в данном случае схема для пользователя и еще одна для твитов)?