anchor.diff:      if (key != null && keys != null) {
         throw new ArgumentError('Only one parameter must be set: key or keys');
       }
  +
       if (key != null) {
         keys = new Map();
         keys['$key'] = 1;
       }
  +
       if (keys == null) {
         throw new ArgumentError('key or keys parameter must be set');
       }
  +
       return keys;
     }
   
  
positive.code:     return result.future;
    }
  
    Future dropCollection(String collectionName) async {
      var collectionInfos = await getCollectionInfos({'name': collectionName});
      if (collectionInfos.length == 1) {
        return executeDbCommand(
            DbCommand.createDropCollectionCommand(this, collectionName));
  
negative.code:       m["errmsg"] = errorMessage;
  
        result.completeError(m);
      } else if (documentIsNotAnError(firstRepliedDocument)) {
        result.complete(firstRepliedDocument);
      } else {
        result.completeError(firstRepliedDocument);
  