MongoDB:从文档中的数组中删除JSON

时间:2019-01-11 09:58:15

标签: mongodb mongoose mongodb-query

我想从文档中的数组中删除json。 我的文件是这样的:

array(3) {
  'password' =>
  string(60) "$2y$10$rlAbpelKnT/yp5zFhXcjwelEKkDEx5SfNJWqL1LiDltRnHYBLINmK"
  'active' =>
  bool(true)
  'updated_at' =>
  string(19) "2019-01-11 11:27:13"
}

在同时删除了两个条件的“ class_id”:“ 2” “ section_id”:“ A” 后,我需要执行以下操作

{
    "_id" : ObjectId("5c2f9a15a372ef8825b18736"),
    "class_section" : [ 
        {
            "class_id" : "1",
            "section_id" : "A"
        }, 
        {
            "class_id" : "2",
            "section_id" : "A"
        }
    ],
    "registered_time" : ISODate("2019-01-04T17:38:29.753Z"),
    "__v" : 0
}

如何在MongoDB中做到这一点?

2 个答案:

答案 0 :(得分:0)

尝试使用$ pull运算符更新文档

collection.update(
  {},
  { $pull: { "class_section": { class_id: '2' } } }
);

请参阅$ pull运算符here的mongo文档

答案 1 :(得分:0)

为此,您可以使用$pull运算符,如下所示:

Collection.update({}, {
  class_section : {class_id: 2, section_id: 'A' }
}, {multi: true}) 

这将更新所有匹配的文档。