我是 Cosmos db 的新手。我选择了 cosmos db(核心 sql),创建了一个具有两个容器的数据库,即 EmployeeContainer 和 DepartmentContainer。现在我想查询这两个容器,并希望获取员工详细信息以及关联的部门详细信息。我坚持了一个观点,需要帮助。
下面是我的容器的结构。
员工容器:ID、姓名、部门ID
部门容器:ID、名称
提前致谢。
Cosmos DB 不是关系数据库。如果一起查询不同的实体,则不会将它们存储在不同的容器中。它们要么嵌入到其他实体中,要么使用与同一容器中的其他实体共享的分区键存储为单独的行。
在深入了解 Cosmos 之前,您需要了解如何对数据进行建模和分区,以确保获得最佳性能。我强烈建议您阅读有关分区的文档,并特别阅读下面的这些文档。
这完全取决于您尝试建模的数据类型。一般来说,这取决于关系。 1:1 或 1:few 通常最适合嵌入相关项目或一起更新查询。 1:many或many:many用于引用相关项独立查询或更新。
有关这些问题的精彩演讲请查看 https://www.gotcosmos.com/conf/ondemand
如果您在一个数据库中有两个容器,那么这很容易实现。这取决于您使用什么语言来创建 api 。您可以创建一个api来连接两个2数据库,然后在2nd数据库中查询第一个结果。 您还可以使用 graphql 创建 api 和查询容器,.
您可以使用子查询。
但这可能会消耗大量的RU。目前只有内部连接。