【发布时间】:2021-09-18 04:57:21
【问题描述】:
我有使用点符号命名的集合,如下所示:
game.clue
game.checkpoint
game.business
是否可以查询所有“游戏”收藏? db.collection("game").find... 不起作用。如果不是这样组织简单层次结构的最佳方法是什么?
【问题讨论】:
标签: node.js mongodb express mongoose
我有使用点符号命名的集合,如下所示:
game.clue
game.checkpoint
game.business
是否可以查询所有“游戏”收藏? db.collection("game").find... 不起作用。如果不是这样组织简单层次结构的最佳方法是什么?
【问题讨论】:
标签: node.js mongodb express mongoose
在 Mongo 4.4 中,您可以使用 $lookup 来加入表格! 这是一个如何做到这一点的链接: https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
更好的层次结构确实取决于您的需求。很难说哪种数据库架构适合您。
我会将游戏存储在一个集合中,并使其结构如下:
[
{clue:{},
checkpoint:{},
business:{},
},...
]
同样,如果不知道您存储的数据或用例,就很难判断。
【讨论】:
不,这行不通。
在 MongoDB 中,集合名称是一个字符串。句点字符在集合名称中没有任何特殊意义。
“game.clue”、“game_clue”、“game-clue”、“gameClue”等是组合名称组件的等效方式。
没有在多个集合中运行相同查询的内置功能。
您可以使用 listCollections 或 getCollectionNames 检索所有集合的列表,使用正则表达式过滤它们,然后在每个集合中运行查询。
【讨论】:
我刚刚决定创建一个“路径”字段,用于对文档进行分类并将它们全部放在一个集合中。
【讨论】: