Пн goose: Как обновить вложенный массив документов? - PullRequest
0 голосов
/ 23 февраля 2020

Вот моя схема

const NetworkSchema = new Schema({
 user: {
 type: Schema.Types.ObjectId,
 ref: 'user'
},
name: {
  type: String
},
friendrequests: [
{
  user: {
    type: Schema.Types.ObjectId,
    ref: 'user'
  },
  name: {
    type: String
  },
  status: {
    type: String,
    default: 'pending'
  },
  date: {
    type: Date,
    default: Date.now
  }
}
],

});

Я хочу обновить мой запрос на добавление вложенного документа, используя его _id. Я все еще новичок в понедельник goose, пожалуйста, помогите. Спасибо

1 Ответ

0 голосов
/ 23 февраля 2020

Хорошо, удалось обновить вложенный документ с помощью updateOne

  const network = await Network.updateOne(
   {
     user: req.user.id,
     'friendrequests._id': req.params.friendrequest_id
   },
   {
     $set: { 'friendrequests.$.status': 'accepted' }
   }
  );

Ссылка: MongoDB: Как обновить отдельный подэлемент в массиве, на который ссылается индекс в массиве?

...