builder method
Implementation
Map<String, dynamic> builder() {
Map<String, dynamic> _where = {};
_where.addAll(
{for (var key in _whereTable.keys) key: _whereTable[key].value});
_where.addAll(
{for (var key in _whereGeoPoint.keys) key: _whereGeoPoint[key].value});
_where.addAll(
{for (var key in _whereBasic.keys) key: _whereBasic[key].value});
if (_orBasic.isNotEmpty || _orGeoPoint.isNotEmpty || _orTable.isNotEmpty) {
var or = [];
for (var map in _orBasic) {
or.add({for (var key in map.keys) key: map[key].value});
}
for (var map in _orGeoPoint) {
or.add({for (var key in map.keys) key: map[key].value});
}
for (var map in _orTable) {
or.add({for (var key in map.keys) key: map[key].value});
}
_where['\$or'] = or;
}
if (_andBasic.isNotEmpty ||
_andGeoPoint.isNotEmpty ||
_andTable.isNotEmpty) {
var and = [];
for (var map in _andBasic) {
and.add({for (var key in map.keys) key: map[key].value});
}
for (var map in _andGeoPoint) {
and.add({for (var key in map.keys) key: map[key].value});
}
for (var map in _andTable) {
and.add({for (var key in map.keys) key: map[key].value});
}
_where['\$and'] = and;
}
return {
'count': true,
if (_where.isNotEmpty) ...{'where': jsonEncode(_where)},
if (_groupCount) ...{'groupcount': _groupCount},
if (_groupBy.isNotEmpty) ...{'groupby': _groupBy.join(',')},
if (_include.isNotEmpty) ...{'include': _include.join(',')},
if (_sum.isNotEmpty) ...{'sum': _sum.join(',')},
if (_min.isNotEmpty) ...{'min': _min.join(',')},
if (_max.isNotEmpty) ...{'max': _max.join(',')},
if (_average.isNotEmpty) ...{'average': _average.join(',')},
if (_having.isNotEmpty) ...{'having': jsonEncode(_having)},
if (_order.isNotEmpty) ...{'order': _order.join(',')},
if (_keys.isNotEmpty) ...{'keys': _keys.join(',')},
if (_limit != null) ...{'limit': _limit},
if (_skip != null) ...{'skip': _skip},
};
}