createIndex method
Future<Map<String, dynamic>>
createIndex(
{ - String? key,
- Map<String, dynamic>? keys,
- bool? unique,
- bool? sparse,
- bool? background,
- bool? dropDups,
- Map<String, dynamic>? partialFilterExpression,
- String? name,
- bool? modernReply,
- Map? collation,
})
Implementation
Future<Map<String, dynamic>> createIndex({
String? key,
Map<String, dynamic>? keys,
bool? unique,
bool? sparse,
bool? background,
bool? dropDups,
Map<String, dynamic>? partialFilterExpression,
String? name,
bool? modernReply,
Map<dynamic, dynamic>? collation,
}) async {
if (!db.masterConnection.serverCapabilities.supportsOpMsg) {
throw MongoDartError('Use createIndex() method on db (before 3.6)');
}
modernReply ??= true;
var indexOptions = CreateIndexOptions(
collection,
uniqueIndex: unique == true,
sparseIndex: sparse == true,
background: background == true,
dropDuplicatedEntries: dropDups == true,
partialFilterExpression: partialFilterExpression,
indexName: name,
collation: collation,
);
var indexOperation =
CreateIndexOperation(db, collection, _setKeys(key, keys), indexOptions);
var res = await indexOperation.execute();
if (res[keyOk] == 0.0) {
// It should be better to create a MongoDartError,
// but, for compatibility reasons, we throw the received map.
throw res;
}
if (modernReply) {
return res;
}
return db.getLastError();
}