如何使用MongoAPI在Cosmos DB中创建多键索引?

时间:2018-01-03 10:06:06

标签: mongodb azure-cosmosdb

Mongo为集合上的多键索引提供支持。我现在正在将mongo DB迁移到cosmos并想知道如何在Cosmos DB中获得相同的索引行为?

3 个答案:

答案 0 :(得分:1)

如果您使用的是mongo Shell,则可以使用createIndex创建一个包含所需键的新集合。

例如,以下内容将创建一个名为my_collection的集合,其中3键复合索引为(key1, key2, key3)

db.my_collection.createIndex({key1: 1, key2: 1, key3: 1})

如果我们希望使索引唯一,我们会这样做:

db.my_collection.createIndex({key1: 1, key2: 1, key3: 1}, {unique: true})

有关更具体的详细信息,请参阅Indexing in the Azure Cosmos DB: MongoDB API

答案 1 :(得分:0)

Cosmos DB中的索引行为不同,因为它是不同的实现,并使用与其他API共享的云基础架构。首先,它会自动索引文档中的每个路径(所有字段,甚至是仅显示在一个文档中的字段)。现在,您可以以相同的方式执行相同的createIndex命令。 (除了unique之外 - 这只需要在空集合上执行)。

答案 2 :(得分:0)

我正在将.NET Core中的MongoDB.Driver API与CosmosDB一起使用,我正在这样做:

-

该调用似乎成功,并且indexName看起来不错,好像已经创建了一样,但是当我再次检索索引列表时,它没有出现。

我能够添加包含单个字段的索引-它们显示在检索到的列表中,但不具有这样的组合索引。