model.fieldsMap.Field.encloseInQuotes / displayType -- List of all possible field displaytypes?

Thanks Mark, your approach to doing Aggregate Model “load more” is very well thought-out, this is a hard problem to solve!

As far as the speed of direct query vs Skuid Model loads, the main reason that Skuid Model loads are somewhat slower than direct REST API calls is due to the schema checks we make server-side to ensure that only accessible fields / objects are being queried. We continue to seek for ways to optimize this in every release, and we made some huge strides with Model load performance in Spark Update 3, especially in orgs with complex schemas.

As far as how to generate a dynamic Skuid Model, this article gives an example of doing that:

https://docs.skuid.com/latest/en/skuid/javascript/dynamic-model-component-creation.html#dynamic-creation-of-models

As long as you don’t call .register() on the dynamic Model, there’s no memory cleanup necessary, but even if you do .register() the Model (which is only necessary if you want to have Components / other Models be able to reference the dynamic Model), you can always call .unregister() the Model when you’re done with it.

The doc doesn’t mention creation of dynamic Aggregate Models, but here would be an example of that:

var aggregationFields = [ { id: 'Id', "function": 'COUNT', name: "countId" }, ]; var groupingFields = [ { id: 'Account.Industry', name: "accountIndustry" }, { id: 'StageName', name: "stage" }, ]; var orderBy = "COUNT(Id) DESC"; var objectName = "Opportunity"; var aggModel = new skuid.model.Model('  ${aggregationFields.map(f => '').join("")}   ${groupingFields.map(f => '').join("")}  ' ); console.log(aggModel); return aggModel.initialize().load().then(function() { console.log("aggregate results", aggModel.getRows()); });