首页 > 解决方案 > 如何更新/删除 mongo db 中嵌入数组中的文档?

问题描述

例如,我的数据有一个树状结构,如下所示:

  private bookshelf: any = [
{
  id: '1',
  name: 'Im Westen nichts Neues',
  description: 'The book by author Eirch Maria Remarque',
  imageLink:
    'https://img.yakaboo.ua/media/catalog/product/cache/1/image/398x565/234c7c011ba026e66d29567e1be1d1f7/7/4/74431_60714327.jpg',
},
{
  id: '2',
  name: 'Der Funke Leben',
  description: 'The book by author Eirch Maria Remarque',
  imageLink:
    'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
},
{
  id: '3',
  name: 'Books',
  isDeletable: true,
  includedFiles: [
    {
      id: '4',
      name: 'Der Funke Leben',
      description: 'The book by author Eirch Maria Remarque',
      imageLink:
        'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
    },
  ],
  includedFolders: [
    {
      id: '5',
      name: 'Thrillers',
      isDeletable: true,
      includedFiles: [
        {
          id: '6',
          name: 'Der Funke Leben',
          description: 'The book by author Eirch Maria Remarque',
          imageLink:
            'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
        },
        {
          id: '7',
          name: 'Der Funke Leben',
          description: 'The book by author Eirch Maria Remarque',
          imageLink:
            'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
        },
        {
          id: '8',
          name: 'Der Funke Leben',
          description: 'The book by author Eirch Maria Remarque',
          imageLink:
            'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
        },
        {
          id: '9',
          name: 'Der Funke Leben',
          description: 'The book by author Eirch Maria Remarque',
          imageLink:
            'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
        },
      ],
      includedFolders: [
        {
          id: '10',
          name: '2007',
          isDeletable: true,
          includedFiles: [
            {
              id: '11',
              name: 'Der Funke Leben',
              description: 'The book by author Eirch Maria Remarque',
              imageLink:
                'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
            },
            {
              id: '12',
              name: 'Der Funke Leben',
              description: 'The book by author Eirch Maria Remarque',
              imageLink:
                'https://images-na.ssl-images-amazon.com/images/I/71-dnZuZ0pL.jpg',
            },
          ],
          includedFolders: [],
        },
      ],
    },
  ],
},

];

所以有两种类型的文档:文件,这是一个单一的实体和文件夹,可以包含多个实体,如文件和其他文件夹,反过来,也可能包含一些数据。我是否需要删除/更新某些嵌入式实体,例如文件或文件夹,我将如何处理?我不能只做,Folder.findById 然后 updateOne。

标签: javascriptarraysjsonmongodbnosql

解决方案


推荐阅读