通过MongoDB API在CosmosDB中与众不同

时间:2018-12-30 20:35:58

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

我正在构建一个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来提供具有列出功能的所有“公司”的列表。通常,如果这是一个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功能的,但在今年早些时候才添加。是否有原因导致失败,或者是否有其他方法可以获取查询结果,或者是否需要提取所有数据,然后在程序逻辑中将其重复数据删除?

1 个答案:

答案 0 :(得分:0)

根据Use Azure Cosmos DB's API for MongoDB support for MongoDB features and syntax > Aggregation pipeline,属于聚合管道一部分的react-native link your_library_name仅在公共预览中受支持。

有关如何加入公共预览的信息,请参见Azure #CosmosDB extends support for MongoDB aggregation pipeline, unique indexes, and more

希望有帮助!