queryFilter

Filters query rows specified in filter criteria

queryFilter(query, function(row [, currentRow] [, query] ){} [, parallel] [, maxThreads]) → returns query

Member Function Syntax

query.filter(function(row [, currentRow] [, query] ){} [, parallel] [, maxThreads])

Argument Reference

query query
Required

The query to filter

callback boolean
Required

Closure or a function reference that will be called for each of the iteration. Returns true if the row should be included in the filtered query.

Callback parameters:

  • row*struct : A struct with all of the columns for the current iteration
  • currentRow*numeric : The row number for the current iteration
  • query*query : A reference of the original query

parallel boolean
Default: false

Lucee 4.5+ CF 2021+ true if the items can be executed in parallel
Values:
  • true
  • false

maxThreads numeric
Default: 20

Lucee 4.5+ CF 2021+ the maximum number of threads to use when parallel = true

Compatibility

ColdFusion:

Version 2016+ queryFilter mutated the original query in CF2016 and 2018 (bug report: https://tracker.adobe.com/#/view/CF-4203366)

Links more information about queryFilter

Examples
Sample code invoking the queryFilter function

news = queryNew("id,type,title", "integer,varchar,varchar");
    queryAddRow(news,[{
        id: 1,
        type: "book",
        title: "Cloud Atlas"
    },{
        id: 2,
        type: "book",
        title: "Lord of The Rings"
    },{
        id: 3,
        type: "film",
        title: "Men in Black"
    }]);
    books = queryFilter(news,function(_news) {
        return _news.type is 'book';
    });
    writeDump(valueList(books.title,', '));

Expected Result: Cloud Atlas, Lord of The Rings

news = queryNew("id,type,title", "integer,varchar,varchar");
    queryAddRow(news,[{
        id: 1,
        type: "book",
        title: "Cloud Atlas"
    },{
        id: 2,
        type: "book",
        title: "Lord of The Rings"
    },{
        id: 3,
        type: "film",
        title: "Men in Black"
    }]);
    books = news.filter(function(_news) {
        return _news.type is 'book';
    });
    writeDump(valueList(books.title,', '));

Expected Result: Cloud Atlas, Lord of The Rings

Signup for cfbreak to stay updated on the latest news from the ColdFusion / CFML community. One email, every friday.

Fork me on GitHub