在MongoDB中以其他大型非关系模式保存和访问高度嵌套的数据

问题描述

初学者在这里。试图为我的数据库建模,到目前为止一直在尝试使事情简单。我将最重要的数据放在一个非常大的模式中:

{
id: '....',albums: [
  {
    artist: 'Taylor Swift',songs: [ 
      { songId: '...',... 
        lyrics: [ 
          { id: 'line1',content: '...'},{ id: 'line2',content: '...'}  ] } ]
  }
 ]
}

您可以看到它是超级嵌套的。我曾想过要移到关系数据库,但是我的应用程序将永远不需要没有专辑等的艺术家,并且每次请求几乎每次都需要全部数据。

问题:用户想保存喜欢的歌词

但是,现在有一个用例,我希望用户能够保存/收藏歌词:用户应该能够保存例如第2行,然后在单独的视图中可以看到他/她保存的不同歌曲和专辑中的所有歌词。 (因此,我有一个用户模式,我想在哪里保存歌词?)如何最好地完成这样的事情而不保存冗余数据?

此外,我不想不必将歌词与其余数据分开(如果可能的话),因为这是我的应用程序的关键数据,除了这种用例之外,永远不会以关系方式使用

PS:这里的数据模型(包括专辑和歌词等)只是一个例子。解释我的实际用例太复杂了,因为它是另一个领域的技术含量很高的,请记住这一点

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...