const AllPostsSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: 'users'
},
posts: [{
postid: {
type: String
},
title: {
type: String
},
category: {
type: String
},
subcategory: {
type: String
}, category: {
type: String
},
description: {
type: String
},
name: {
type: String
},
price: {
type: Number
},
email: {
type: String
},
phonenumber: {
type: Number
},
language: {
type: String
},
make: {
type: String
},
model: {
type: Number
},
odometer: {
type: Number
},
condition: {
type: String
},
state: {
type: String
},
town: {
type: String
},
city: {
type: String
},
links: [{ type: String }],
date: {
type: Date,
default: Date.now
}
}]
})
AllPosts.findOneAndUpdate({ 'user': req.query.userid },
{ $pull: { 'posts': { 'links': req.query.link } } }
)
.then(post => console.log(post))
Мне нужно найти определенного пользователя c, и в пределах этого пользователя сопоставить идентификатор записи, затем удалить одну из ссылок в массиве ссылок. когда я делаю это, как описано выше, он удаляет весь массив, вместо этого я хочу, чтобы он удалил указанную c ссылку в массиве ссылок в массиве сообщений. У каждого пользователя есть одно или несколько сообщений. Мне нужно обновить один пост определенного пользователя c. если пользователь хочет удалить изображение, я удаляю его из amazon s3, тогда мне нужно удалить ссылку из этого массива ссылок поста, чтобы он не создавал битые теги img во внешнем интерфейсе.
AllPosts.findOneAndUpdate({ 'user': req.query.userid, 'posts.postid': req.query.postid },
{ $pull: { 'links': req.query.link } }
)
.then(post => console.log(post))
это также не работал.