Как удалить или удалить данные массива из документа в mongodb, используя php - PullRequest
0 голосов
/ 28 июня 2018

Вот JSON, который я хочу удалить {баллов: 55, бонус: 20} из баллов

{
       _id: 3,
       name: "ahn",
       age: 22,
       type: 2,
       status: "A",
       favorites: { artist: "Cassatt", food: "cake" },
       finished: [ 6 ],
       badges: [ "blue", "red" ],
       points: [
          { points: 81, bonus: 8 },
          { points: 55, bonus: 20 },
          { points: 56, bonus: 25 }
       ]
}

Я хочу увидеть этот результат

{
       _id: 3,
       name: "ahn",
       age: 22,
       type: 2,
       status: "A",
       favorites: { artist: "Cassatt", food: "cake" },
       finished: [ 6 ],
       badges: [ "blue", "red" ],
       points: [
          { points: 81, bonus: 8 },
          { points: 56, bonus: 25 }
       ]
}

Ответы [ 2 ]

0 голосов
/ 28 июня 2018
collection->update(array("_id"=>$document["_id"]),array('$pull'=>array("points"=>array("points"=>55,"bonus"=>20)));

В PHP этот код используется для удаления документов из документа

0 голосов
/ 28 июня 2018

Вы можете использовать $ pull of MongoDB

    db.collection.update(
      { },
      { $pull: { points:  { points: 55, bonus: 20 } } },
    )

{multi: true}: добавление этого в запросе выше удалит все записи, соответствующие {points: 55, bonus: 20}

...