【问题标题】:Sending relational data updates from front-end to back-end从前端发送关系数据更新到后端
【发布时间】:2018-09-04 11:40:35
【问题描述】:

我有一张可以容纳不同人的桌子。现在用户可以选择一组人(比如汤姆迪克和哈利)并将他们分组到一个新的“团队”中。在后端,我需要更新 Tom、Dick 和 Harry,并在他们的 team_field 中添加一个团队 ID。

例如:

{
name: "Tom",
age: 12,
team_id: id_for_team_1
}

但由于在用户选择 Tom、Dick 和 Harry 并创建团队之前 team_1 不存在,所以我还没有 team1 的 ID。

看来我首先需要这个:

{
_id: id_for_team_1
team_name: "Team Cool"
team_color: "blue"
}

我将如何在前端解决这个问题?

我的想法: 向后端发出请求,在服务器上创建团队,从后端取回 team_id,然后将 id 添加到 Tom, Dick & Harry 然后发送他们的更新配置文件到后端?

但是:这是我可以采取的最简单的方法,还是有更好的方法来解决这个问题?看起来很复杂。 理想情况下,我只想在前端更新所有内容,即创建团队对象+更新配置文件,然后将其全部发送到服务器。但我不知道我怎么能做到这一点,因为我似乎依赖于 mongodbs ids 并且不能只在前端组成自己的。

【问题讨论】:

    标签: javascript node.js mongodb relationship non-relational-database


    【解决方案1】:

    如果您只想更新他们所属的团队,您可以在一次调用中发送一个 userId 列表,然后后端可以创建一个新团队并更新 team_id。 伪代码:

    1) POST /api/team
    2) let userIds = req.body.userIds
    3) newTeamId = Create a new team in Mongo and get its id
    4) for(uid in userIds){ 
        user = Mongo.find(id : uid);
        user.teamId = newTeamId 
        Mongo.update(user)
     }
    

    如果您还希望能够更新用户信息,我将创建 2 个 API 方法,一个用于更新用户个人资料,另一个用于管理团队。

    【讨论】:

    • 有趣!为什么要将其拆分为两个 API 端点?
    • 我想你有一个菜单来管理组和另一个菜单来更新某个用户的配置文件,所以即使你将它存储在 MongoDB 中的单个文档中,我也会为它创建 2 个端点.为组创建端点允许您执行诸如查找某个组中的所有用户、创建包含 X 个用户的新组、将用户放入组等操作...这样,您可以更好地拆分应用程序的逻辑和使其更易于维护等。
    猜你喜欢
    • 1970-01-01
    • 2012-01-29
    • 2022-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多