【问题标题】:How to disable cross partitioning in query in Golang Mongo API for Cosmos DB如何在 Golang Mongo API for Cosmos DB 的查询中禁用交叉分区
【发布时间】:2021-12-03 15:42:52
【问题描述】:

我正在使用官方的 mongo Golang SDK (https://github.com/mongodb/mongo-go-driver) 连接到 Cosmos DB。我正在寻找一种禁用跨分区查询的方法。 Cosmos DB 支持的其他 SDK 具有此选项。

谢谢 大师

【问题讨论】:

标签: azure azure-cosmosdb azure-cosmosdb-mongoapi


【解决方案1】:

使用 Cosmos DB 的 MongoDB API 的唯一方法是使用特定于 MongoDB 的 SDK,就像您用于 Go 的 SDK 一样。特定于 MongoDB 的 SDK 对 Cosmos DB 一无所知 - 它们是专门为与 MongoDB 一起工作而设计的。这就是为什么没有明显设置执行/不执行跨分区查询的原因。只有 Cosmos DB 原生 SDK 会了解 Cosmos DB 的细节。

要针对容器中的特定分区,使用 MongoDB 特定的驱动程序,您需要在查询中指定容器的分区键(尽管 MongoDB 将这样的键称为 shard 键)。

您没有提供任何示例数据,但是...假设您有一个公司和部门的集合,并且"company" 是您的分片键,您可能会有一个看起来像这样的查询:

db.divisions.find( { division: 'marketing', company: 'ABC Corp' })

由于指定了分片键,这样就避免了跨分区查询。

【讨论】:

    【解决方案2】:

    此主题已在问答论坛中得到解答。请参阅此link 了解更多信息。

    要连接到 MongoDB 的 API,用户使用 MongoDB 驱动程序,而不是 Cosmos DB 驱动程序。 Cosmos DB 驱动程序仅用于连接到本机 SQL API。

    【讨论】:

    • 请注意:此处的 OP 与其他支持站点上的同一个人(不确定您为什么要引用它)。另请注意,OP正在使用官方 MongoDB 驱动程序,并且使用 Cosmos DB SQL API 驱动程序/SDK。您在此处提供的不是答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2022-11-12
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多