anchor.diff:    }
   
     /// Analogue to shell's `show dbs`. Helper for `listDatabases` mongodb command.
  -  Future<List> listDatabases() {
  -    return executeDbCommand(
  -        DbCommand.createQueryAdminCommand({"listDatabases": 1})).then((val) {
  -      var res = [];
  -      for (var each in val["databases"]) {
  -        res.add(each["name"]);
  -      }
  -      return new Future.value(res);
  -    });
  +  Future<List> listDatabases() async {
  +    var commandResult = await executeDbCommand(
  +        DbCommand.createQueryAdminCommand({"listDatabases": 1}));
  +
  +    var result = [];
  +
  +    for (var each in commandResult["databases"]) {
  +      result.add(each["name"]);
  +    }
  +
  +    return result;
     }
   
     Stream<Map> _listCollectionsCursor([Map filter = const {}]) {
  
positive.code:       bool sparse,
        bool background,
        bool dropDups,
        String name}) {
      return new Future.sync(() {
        keys = _setKeys(key, keys);
        return collection(collectionName).getIndexes().then((indexInfos) {
          if (name == null) {
            name = _createIndexName(keys);
          }
          if (indexInfos.any((info) => info['name'] == name)) {
            return new Future.value({'ok': 1.0, 'result': 'index preexists'});
          }
          return createIndex(collectionName,
              keys: keys,
              unique: unique,
              sparse: sparse,
              background: background,
              dropDups: dropDups,
              name: name);
        });
      });
    }
  
    Future _getAcknowledgement({WriteConcern writeConcern}) {
  
negative.code:       bool background,
        bool dropDups,
        String name}) {
      return new Future.sync(() async {
        var selector = {};
        selector['ns'] = '$databaseName.$collectionName';
        keys = _setKeys(key, keys);
  