Mongo为集合上的多键索引提供支持。我现在正在将mongo DB迁移到cosmos并想知道如何在Cosmos DB中获得相同的索引行为?
答案 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看起来不错,好像已经创建了一样,但是当我再次检索索引列表时,它没有出现。
我能够添加包含单个字段的索引-它们显示在检索到的列表中,但不具有这样的组合索引。