最近在学习树结构时使用deleteOne()
方法只能实现删除父节点的操作,所以就自己整理了删除子文档的技巧。
MongoDB的“update”操作可以更新或删除子文档
上面的代码会从文档“Prop”中对应“selectedPropId”的文档中,删除其子文档“Children”中“objectId”字段为“selectedPropId”的子文档。
上面的例题是我自己学习树结构时的代码,为了更好理解我在下面又写了一下,要删除子文档,可以使用“$pull”选项。如果要删除单个子文档,只需使用文档的“_id”字段,例如:
上面的代码会从文档“products”中对应“productId”的文档中,删除其子文档“relatives”中“_id”字段为“relativeId”的子文档。
除了一次删除一个子文档外也可以一次删除多个子文档,例如:
上面的代码可以将文档“products”下对应“productId”的子文档“relatives”的那些_id字段为“relativeId1”,“relativeId2”和“relativeId3”的子文档一次性删除。
当然如果使用的是mongoose可以直接定义模型使用该方法,就和我第一个图片所示。