anchor.diff:     * and it can be a String or a DbCollection. [objs] are the objects to be inserted,
      * and can be a list of maps, or a list of encodable objects.
      */
  -  Future<Map<String, dynamic>> insertAll(dynamic collection, List objs, {WriteConcern writeConcern}) {
  -    var dbCol = _collection(collection);
  +  Future<Map<String, dynamic>> insertAll(DbCollection dbCol, List objs, {WriteConcern writeConcern}) {
       return dbCol.insertAll(objs.map((obj) => _serializer.toMap(obj)).toList(), writeConcern: writeConcern);
     }
   
  
positive.code:    * and it can be a String or a DbCollection. [query] can be a Map, a SelectorBuilder,
     * or an encodable object.
     */
    Future<T> findAndModify<T>(dynamic collection, Type type,
        {query, sort, bool remove, update, bool returnNew, fields, bool upsert, WriteConcern writeConcern}) async {
      if (type == null) {
        throw ArgumentError.notNull("type");
      }
  
      var dbCol = _collection(collection);
      if (query != null && query is! Map && query is! SelectorBuilder) {
        query = _serializer.toMap(query);
      }
  
negative.code:    * and it can be a String or a DbCollection. [obj] is the object to be saved,
     * and can be a Map or an encodable object.
     */
    Future<Map<String, dynamic>> save(DbCollection dbCol, Object obj, {WriteConcern writeConcern}) {
      if (obj is! Map) {
        obj = _serializer.toMap(obj);
      }
  