【问题标题】:Mongoose + MongoDB can you query all parent collections?Mongoose + MongoDB 可以查询所有父集合吗?
【发布时间】:2021-09-18 04:57:21
【问题描述】:

我有使用点符号命名的集合,如下所示:

game.clue
game.checkpoint
game.business

是否可以查询所有“游戏”收藏? db.collection("game").find... 不起作用。如果不是这样组织简单层次结构的最佳方法是什么?

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    在 Mongo 4.4 中,您可以使用 $lookup 来加入表格! 这是一个如何做到这一点的链接: https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/

    更好的层次结构确实取决于您的需求。很难说哪种数据库架构适合您。

    我会将游戏存储在一个集合中,并使其结构如下:

    [
      {clue:{},
       checkpoint:{},
       business:{},
      },...
    ]
    

    同样,如果不知道您存储的数据或用例,就很难判断。

    【讨论】:

      【解决方案2】:

      不,这行不通。

      在 MongoDB 中,集合名称是一个字符串。句点字符在集合名称中没有任何特殊意义。

      “game.clue”、“game_clue”、“game-clue”、“gameClue”等是组合名称组件的等效方式。

      没有在多个集合中运行相同查询的内置功能。

      您可以使用 listCollections 或 getCollectionNames 检索所有集合的列表,使用正则表达式过滤它们,然后在每个集合中运行查询。

      【讨论】:

        【解决方案3】:

        我刚刚决定创建一个“路径”字段,用于对文档进行分类并将它们全部放在一个集合中。

        【讨论】:

          猜你喜欢
          • 2020-03-23
          • 2014-02-09
          • 1970-01-01
          • 1970-01-01
          • 2017-09-15
          • 1970-01-01
          • 2014-10-10
          • 2022-01-04
          • 1970-01-01
          相关资源
          最近更新 更多