Всем привет, у меня есть схема посты, внутри нее есть массив с постами, внутри поста массив с лайками
const {
Schema,
model,
ObjectId,
} = require('mongoose');
const likeSchema = new Schema({
id: {type: ObjectId},
userId: {type: ObjectId},
userName: {type: String},
userLastName: {type: String},
})
const postElementSchema = new Schema({
id: {type: ObjectId},
date: {type: String},
time: {type: String},
content: {type: String},
likes: [likeSchema]
})
const PostSchema = new Schema({
id: {type: ObjectId},
userName: {type: String},
userLastName: {type: String},
userAvatar: {type: String},
posts: [postElementSchema]
});
module.exports = model('Post', PostSchema);
структура должна быть примерно такой, но это не работает(
если я сделаю так
const PostSchema = new Schema({
id: {type: ObjectId},
userName: {type: String},
userLastName: {type: String},
userAvatar: {type: String},
posts: {type: Array}
});
то все норм, но мне надо описать вложенные массивы, для того что бы я мог редактировать вложенные объекты например так
const likeParams = (args) => {
return {
id: uuidv4(),
userId: args.userId,
userName: args.userName,
userLastName: args.userLastName,
}
}
const postsData = await MongoosePost.findOne({id: args.ownersId})
postsData.posts.filter(async (post)=> {
if(post.id === args.postId){
post.likes.unshift(likeParams(args))
await post.save()
return post
}
})
без типизации вложенных объектов не работает