UNPKG

mongo-aql

Version:

A mongo-like interface for aql generation

26 lines (20 loc) 879 B
var queryTypes = require('../../query-helpers'); var updateHelpers = require('../../update-helpers'); var utils = require('../../utils'); var queryBuilder = require('../../query-builder'); queryTypes.register('updates', function($updates, values, query){ var output = "set "; var result = Object.keys( $updates ).map( function( key ){ if (updateHelpers.has(key)){ return updateHelpers.get(key).fn($updates[key], values, query.__defaultTable); } if ($updates[key] === null){ return utils.quoteObject(key) + ' = null'; } if (typeof $updates[ key ] == 'object' && 'type' in $updates[ key ]){ return utils.quoteObject(key) + ' = ( ' + queryBuilder( $updates[ key ], values ) + ' )'; } return utils.quoteObject(key) + ' = $' + values.push($updates[key]); }); return result.length > 0 ? ('set ' + result.join(', ')) : ''; });