小编bnm*_*m12的帖子

如何在cosmos db中构建多对多关系

我正在开发一个新项目,有人建议我看看 Cosmos DB 以用于我的数据存储,因为它将成为一个全球 SaaS 应用程序,为潜在的数十万用户提供服务。

由于这是我第一次涉足 NoSQL 数据库,我不可避免地遇到了很多需要学习的东西,但我觉得我已经慢慢掌握了它,并且实际上对此感到非常兴奋。

现在问题来了:我有一个相对简单的数据结构,我似乎无法理解如何实现,而且我几乎已经接受了这样一个事实:它可能只是一个工作负载,而不是“在非关系数据库中确实工作得很好。但正如我所说,我完全是绿色的,所以我来这里是为了进行健全性检查,以防我遗漏了一些明显的东西

我有一个由“用户”对象和“帖子”对象组成的数据结构,我需要根据无界标签数组将它们关联起来,以基本上创建自定义的提要,它们看起来像这样

用户:

{
    id: 1,
    name: "username",
    interests: [
        "fishing",
        "photography",
        "stargazing",
    ]
}
Run Code Online (Sandbox Code Playgroud)

邮政:

{
    id: 1,
    title: "My post title",
    body: "My post content",
    tags: [
        "tennis",
        "sport",
        "photography",
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想返回所有帖子的列表,这些帖子的标签中有一个或多个给定用户的兴趣,所以基本上是这样的查询:

SELECT DISTINCT VALUE Posts FROM Posts
JOIN tag IN Posts.Tags
WHERE tag IN <<user.interests>>
Run Code Online (Sandbox Code Playgroud)

在 SQL 中,我创建一个用户表和一个帖子表,并根据共享标签/兴趣将它们连接起来,但我一生都无法弄清楚如何对其进行非规范化(如果可能的话)。在我第一次尝试仅使用 2 个对象时,我是否真的遇到了 NoSQL 不可能的流程之一?或者我只是个菜鸟?

database azure data-structures azure-cosmosdb azure-cosmosdb-sqlapi

7
推荐指数
1
解决办法
4525
查看次数