通过 MongoDB API 在 CosmosDB 中区分
Distinct in CosmosDB via MongoDB API
我正在构建一个 MERN-stack 应用程序,它在后端有一个 CosmosDB 数据库,其集合的结构类似于以下内容:
{
"_id" : ObjectId("5c22dd1d58e77e47ac6361ae"),
"company" : "Company 1",
"feature" : "Feature 1",
"date" : "2018-10-04"
}
{
"_id" : ObjectId("5c22ddcb58e77e47ac6361af"),
"company" : "Company 2",
"feature" : "Feature 1",
"date" : "2018-03-12"
}
{
"_id" : ObjectId("5c22ddfc58e77e47ac6361b0"),
"company" : "Company 2",
"feature" : "Feature 2",
"date" : "2018-11-13"
}
我需要 API 来提供包含已列出功能的所有 "company" 的列表。通常,如果这是一个 SQL 数据库,它将是 SELECT DISTINCT company FROM features
,但是当我尝试执行查询 db.getCollection("features").distinct("company")
时,我得到:
[js] Error: distinct failed: {
"_t" : "OKMongoResponse",
"ok" : 0,
"code" : 115,
"errmsg" : "Command is not supported",
"$err" : "Command is not supported"
}
在做一些研究时,CosmosDB 最初似乎没有执行 DISTINCT 的能力,但在今年早些时候添加了。这是失败的原因,还是我可以通过其他方式获取查询结果,或者我是否需要提取所有数据,然后在我的程序逻辑中删除重复数据?
根据 Use Azure Cosmos DB's API for MongoDB support for MongoDB features and syntax > Aggregation pipeline,作为聚合管道一部分的 distinct
仅在 public 预览版中受支持。
请参阅 Azure #CosmosDB extends support for MongoDB aggregation pipeline, unique indexes, and more 了解如何加入 public 预览。
希望对您有所帮助!
我正在构建一个 MERN-stack 应用程序,它在后端有一个 CosmosDB 数据库,其集合的结构类似于以下内容:
{
"_id" : ObjectId("5c22dd1d58e77e47ac6361ae"),
"company" : "Company 1",
"feature" : "Feature 1",
"date" : "2018-10-04"
}
{
"_id" : ObjectId("5c22ddcb58e77e47ac6361af"),
"company" : "Company 2",
"feature" : "Feature 1",
"date" : "2018-03-12"
}
{
"_id" : ObjectId("5c22ddfc58e77e47ac6361b0"),
"company" : "Company 2",
"feature" : "Feature 2",
"date" : "2018-11-13"
}
我需要 API 来提供包含已列出功能的所有 "company" 的列表。通常,如果这是一个 SQL 数据库,它将是 SELECT DISTINCT company FROM features
,但是当我尝试执行查询 db.getCollection("features").distinct("company")
时,我得到:
[js] Error: distinct failed: {
"_t" : "OKMongoResponse",
"ok" : 0,
"code" : 115,
"errmsg" : "Command is not supported",
"$err" : "Command is not supported"
}
在做一些研究时,CosmosDB 最初似乎没有执行 DISTINCT 的能力,但在今年早些时候添加了。这是失败的原因,还是我可以通过其他方式获取查询结果,或者我是否需要提取所有数据,然后在我的程序逻辑中删除重复数据?
根据 Use Azure Cosmos DB's API for MongoDB support for MongoDB features and syntax > Aggregation pipeline,作为聚合管道一部分的 distinct
仅在 public 预览版中受支持。
请参阅 Azure #CosmosDB extends support for MongoDB aggregation pipeline, unique indexes, and more 了解如何加入 public 预览。
希望对您有所帮助!