ensureIndex method
Future
ensureIndex(
- String collectionName, {
- String? key,
- Map<String, dynamic>? keys,
- bool? unique,
- bool? sparse,
- bool? background,
- bool? dropDups,
- Map<String, dynamic>? partialFilterExpression,
- String? name,
})
Implementation
Future ensureIndex(String collectionName,
{String? key,
Map<String, dynamic>? keys,
bool? unique,
bool? sparse,
bool? background,
bool? dropDups,
Map<String, dynamic>? partialFilterExpression,
String? name}) async {
keys = _setKeys(key, keys);
var indexInfos = await collection(collectionName).getIndexes();
name ??= _createIndexName(keys);
if (indexInfos.any((info) => info['name'] == name) ||
// For compatibility reasons, old indexes where created with
// a leading underscore
indexInfos.any((info) => info['name'] == '_$name')) {
return {'ok': 1.0, 'result': 'index preexists'};
}
var createdIndex = await createIndex(collectionName,
keys: keys,
unique: unique,
sparse: sparse,
background: background,
dropDups: dropDups,
partialFilterExpression: partialFilterExpression,
name: name);
return createdIndex;
}