Classes
Members
-
<private, inner> nestedOps :array.<string>
-
Description
The list of operators that are nested within the expression object. These take the form
{path:{operator:operand}}
Details
-
<private, inner> prefixOps :array.<string>
-
Description
The list of operators that prefix the expression object. These take the form
{operator:{operands}}
or{operator: [operands]}
Details
-
<static> delimiter :string
-
Description
The delimiter to use when splitting an expression
Details
-
<private, inner> operations
-
Description
The query operations that evaluate directly from an operation
Details
Methods
-
<private, inner> processNestedOperator( path, operand ) → {object}
-
Description
Processes a nested operator by picking the operator out of the expression object. Returns a formatted object that can be used for querying
Parameters
Name Type Description path
string The path to element to work with
operand
object The operands to use for the query
Returns
Details
-
<private, inner> processExpressionObject( val, key ) → {object}
-
Description
Interrogates a single query expression object and calls the appropriate handler for its contents
Parameters
Name Type Description val
object The expression
key
object The prefix
Returns
Details
-
<private, inner> processPrefixOperator( operation, operand ) → {object}
-
Description
Processes a prefixed operator and then passes control to the nested operator method to pick out the contained values
Parameters
Name Type Description operation
string The operation prefix
operand
object The operands to use for the query
Returns
Details
-
<private, inner> parseQueryExpression( obj ) → {object}
-
Description
Parses a query request and builds an object that can used to process a query target
Parameters
Name Type Description obj
object The expression object
Returns
Details
-
<private, inner> splitPath( path ) → {array}
-
Description
Splits a path expression into its component parts
Parameters
Name Type Description path
string The path to split
Returns
Details
-
<private, inner> reachin( path, record ) → {*}
-
Description
Reaches into an object and allows you to get at a value deeply nested in an object
Parameters
Name Type Description path
array The split path of the element to work with
record
object The record to reach into
Returns
Details
-
<private, inner> pushin( path, record, setter, newValue )
-
Description
This will write the value into a record at the path, creating intervening objects if they don't exist
Parameters
Name Type Description path
array The split path of the element to work with
record
object The record to reach into
setter
string The set command, defaults to $set
newValue
object The value to write to the, or if the operator is $pull, the query of items to look for
Details
-
<private, inner> execQuery( obj, qu, shortCircuit, stopOnFirst )
-
Description
Executes a query by traversing a document and evaluating each record
Parameters
Name Type Attributes Description obj
array | object The object to query
qu
object The query to execute
shortCircuit
boolean <nullable> When true, the condition that matches the query stops evaluation for that record, otherwise all conditions have to be met
stopOnFirst
boolean <nullable> When true all evaluation stops after the first record is found to match the conditons
Details
-
<static> update( obj, qu, setDocument )
-
Description
Updates all records in obj that match the query. See module:documents/probe.updateOperators for the operators that are supported.
Parameters
Name Type Description obj
object | array The object to update
qu
object The query which will be used to identify the records to updated
setDocument
object The update operator. See module:documents/probe.updateOperators
Details
-
<static> find( obj, qu ) → {array}
-
Description
Find all records that match a query
Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> findKeys( obj, qu ) → {array}
-
Description
Find all records that match a query and returns the keys for those items. This is similar to module:documents/probe.find but instead of returning
records, returns the keys. Ifobj
is an object it will return the hash key. If 'obj' is an array, it will return the indexParameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> findOne( obj, qu ) → {object}
-
Description
Returns the first record that matches the query. Aliased as
seek
.Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> findOneKey( obj, qu ) → {object}
-
Description
Returns the first record that matches the query and returns its key or index depending on whether
obj
is an object or array respectively.
Aliased asseekKey
.Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> remove( obj, qu ) → {object|array}
-
Description
Remove all items in the object/array that match the query
Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> all( obj, qu ) → {boolean}
-
Description
Returns true if all items match the query
Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> any( obj, qu ) → {boolean}
-
Description
Returns true if any of the items match the query
Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> unique( obj, qu ) → {array}
-
Description
Returns the set of unique records that match a query
Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute. See module:documents/probe.queryOperators for the operators you can use.
Returns
Details
-
<static> set( path, record, setter, newValue )
-
Description
This will write the value into a record at the path, creating intervening objects if they don't exist. This does not work as filtered
update and is meant to be used on a single record. It is a nice way of setting a property at an arbitrary depth at will.Parameters
Name Type Description path
array The split path of the element to work with
record
object The record to reach into
setter
string The set operation. See module:documents/probe.updateOperators for the operators you can use.
newValue
object The value to write to the, or if the operator is $pull, the query of items to look for
Details
-
<static> get( path, record ) → {*}
-
Description
Reaches into an object and allows you to get at a value deeply nested in an object. This is not a query, but a
straight reach in, useful for event bindingsParameters
Name Type Description path
array The split path of the element to work with
record
object The record to reach into
Returns
Details
-
<static> some( obj, qu ) → {boolean}
-
Description
Returns true if any of the items match the query. Aliases as
any
Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute
Returns
Details
-
<static> every( obj, qu ) → {boolean}
-
Description
Returns true if all items match the query. Aliases as
all
Parameters
Name Type Description obj
array | object The object to query
qu
object The query to execute
Returns
Details
-
<static> proxy( obj ) → {object}
-
Description
Binds the query and update methods to a new object. When called these
methods can skip the first parameter so that find(object, query) can just be called as find(query)Parameters
Name Type Description obj
object | array The object or array to bind to
Returns
Details
-
<static> mixin( obj, collection )
-
Description
Binds the query and update methods to a specific object and adds the methods to that object. When called these
methods can skip the first parameter so that find(object, query) can just be called as object.find(query)Parameters
Name Type Description obj
object | array The object or array to bind to
collection
object | array If the collection is not the same as
this
but is a property, or even
a whole other object, you specify that here. Otherwise theobj
is assumed to be the same as the collecionDetails