code: func (query Query) JoinWith(mode string, collection string, condition ...c.Condition) Query {
  	if len(condition) == 0 {
  		query.JoinClause = append(query.JoinClause, c.Join{
  			Mode:       mode,
  			Collection: collection,
  			Condition: c.And(c.Eq(
  				c.I(query.Collection+"."+strings.TrimSuffix(collection, "s")+"_id"),
  				c.I(collection+".id"),
  			)),
  		})
  	} else {
  		query.JoinClause = append(query.JoinClause, c.Join{
  			Mode:       mode,
  			Collection: collection,
  			Condition:  c.And(condition...),
  		})
  	}
  
  	return query
  }
docs: // JoinWith current collection with other collection with custom join mode.