【问题标题】:Saving data on object for each user in a nosql database (Mongo)在 nosql 数据库(Mongo)中为每个用户保存对象数据
【发布时间】:2020-06-09 17:20:25
【问题描述】:

我有一个 REST API,它从 MongoDB 中的数据库提供服务。假设提供的每个 JSON 单元都包含有关电影的数据。我希望我的用户勾选他们是否看过电影。我的问题是,作为初学者,我不确定应该如何实施。

我需要为每个用户保存这个。现在我的 mongo 数据库只保存所有电影一般

您能否举个例子说明如何在无 sql 数据库中实现这一点?如果我想保存更详细的数据,例如用户记录与某部电影相关的私人笔记,该怎么办?

【问题讨论】:

    标签: node.js database mongodb database-design nosql


    【解决方案1】:

    您可以简单地拥有一个包含 user_id、movie_id 和 boolean 的表,这意味着如果存在 movie_id 和 user_id,则 boolean 为 true,否则它仍然为 false,这就是我将如何实现它。

    【讨论】:

    • 啊好吧,我明白了!多谢!如果我有更多数据要保存,我会将其拆分为几个表,还是可以简单地将其全部放在一个具有 user_idmovie_id 的表中,然后是 checked?:true/false notes:[note1,note2, ...] 之类的字段? /跨度>
    • 我将创建一个名为 watched_film 的表,其参数为 movie_id user_id 和布尔值 watched
    【解决方案2】:

    您可以拥有类似这样的电影数据,其中包含每部电影的唯一 ID

    movie={
       id : <MOVIE_ID> //some movie ID
       name : <MOVIE_NAME> //some name
       ... //other info you want to store
    }
    

    然后你可以将用户看过的每一部电影保存在他的用户数据中的一个数组中

    user = {
      id : <USER_ID> //some user id
      name : <USER_NAME> //some name
      watched_movies : [<MOVIE_ID1>,<MOVIE_ID2>,.....] //movie IDS
      ... //other data about user
    } 
    

    当您为特定用户渲染所有电影时,您只需要遍历这些数组并标记检查电影是否用户已经看过该电影

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2018-05-30
      • 2018-07-20
      • 2014-12-16
      • 1970-01-01
      相关资源
      最近更新 更多