Удалить объект из массива в документе в следующем коде, используя MongoDB? - PullRequest
0 голосов
/ 25 апреля 2020
  • Ниже приведен мой документ, мне нужно удалить массив комментариев объекта из документа, чтобы я мог передать идентификатор документа из внешнего интерфейса с помощью postId.
  • Я структурирован, пожалуйста помоги мне.
{
  likes: [],
  _id: 5ea4375f49e4355094073330,
  title: 'abc',
  body: 'abc',
  photo: 'no pic',
  postedBy: 5e9aa457de91831e5c9f5005,
  comments: [
    {
      _id: 5ea437c2a584ce5ac0147da1,
      text: 'sadsadsad',
      postedBy: [Object]
    },
    {
      _id: 5ea437c5a584ce5ac0147da2,
      text: 'sadsadsad',
      postedBy: [Object]
    },
    {
      _id: 5ea437c7a584ce5ac0147da3,
      text: 'sadsadsad',
      postedBy: [Object]
    }
  ],
  __v: 0
}

1 Ответ

1 голос
/ 25 апреля 2020

Если вы хотите удалить указанный элемент c из массива comments, вы можете использовать следующий запрос:

db.mycollection. updateOne(
       {'_id': ObjectId("5ea4375f49e4355094073330")},
       { $pull: { "comments" : { _id: ObjectId("5ea437c2a584ce5ac0147da1") } } }
);

Если вы хотите удалить объект комментария из каждого элемента в вашей коллекции Вы можете просто удалить первый аргумент из update. Как то так:

db.mycollection.updateMany(
       { },
       { $pull: { "comments" : { _id: ObjectId("5ea437c2a584ce5ac0147da1") } } }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...