是否可以在MongoDB设置中独立访问嵌入的对象?

时间:2019-01-27 15:12:43

标签: php database mongodb laravel

我想使用laravel和MongoDB为纸牌游戏《魔法聚会》(MtG)编写一个应用程序。我想使用来自scryfall API的数据,直到现在,我仍将这些数据序列化到普通的MySQL数据库中。但是,来自Scryfall的数据是非常不可序列化的,并且我将失去很多灵活性,因此我认为这可能是学习不同方法并试用MongoDB的理想项目。

现在在MtG中,每个Card都是Set的一部分,因此我认为将Card对象作为嵌入对象存储在每个Set中,如下所示:

{
    name: "Set Name",
    code: "SN",
    // More paramaters for the set...
    cards: [{
        id: "123ljk123123l",
        name: "Card Name"
        // All parameters of that card
    },
    {
        id: "123123ljk12al",
        name: "Another Card Name"
        // All parameters of this card
    }]
}

这样,SetCard的关系就是EmbedsMany。 但是我仍然需要访问卡而不知道它在哪个集合中,仅通过其ID(这是唯一的)即可。这可能吗?这甚至是解决此类问题的最佳方法吗?

最终,我想管理用户卡的集合,因此我需要某种方式能够在用户和卡之间建立ManyToMany关系(直到现在,我使用数据透视表以及其他字段来表示用户拥有的卡数量)类型,以及它们是否受阻,因此我也需要向该关系添加一些信息)

问题就更多了:将其建模到广告数据库中的最佳方法是什么? MongoDB是正确的选择吗?

0 个答案:

没有答案