更新mongodb中的分层数据

sxpgvts3  于 2023-04-29  发布在  Go
关注(0)|答案(1)|浏览(137)

我在MongoDB的文档中有一个对象数组,它是深度嵌套的,它的结构是这样的:-

items : [{
       filename:'abc',
       items:[{
            filename:'qwe',
            items:[{
                filename:'asdasd',
                items:[{......]}}

我用这个结构在react的前端做了一个文件浏览器,现在的问题是这个嵌套对象的深度可以是用户想要的,因为用户可以在文件中创建他/她想要的文件,但是我不知道如何更新一个深度嵌套的文件,我不知道在哪个级别。如果你能建议一些其他的架构,那也很好。

9gm1akwq

9gm1akwq1#

首先,你可以创建一个items集合,它的id是这样的:

{
    "_id": Id("item1"),
    "filename": "abc",
    "parent": null // no parent since it's at the top level
  },
  {
    "_id": Id("item2"),
    "filename": "def",
    "parent": Id("item1") // reference to parent item1
  },
  {
    "_id": Id("item3"),
    "filename": "gdj",
    "parent": Id("item2") // reference to parent item2
  }
]

那么这个集合必须通过items id插入mongodb文档:

{
  "_id": Id("blablabla"),
  "items": [
    {
      "$ref": "items",
      "$id": Id("item1")
    }
  ]
}

相关问题