Package org.teiid.translator.mongodb
Class MongoDBDirectQueryExecution
- java.lang.Object
-
- org.teiid.translator.mongodb.MongoDBBaseExecution
-
- org.teiid.translator.mongodb.MongoDBDirectQueryExecution
-
- All Implemented Interfaces:
Execution
,ProcedureExecution
,ResultSetExecution
public class MongoDBDirectQueryExecution extends MongoDBBaseExecution implements ProcedureExecution
This enables the Direct Query execution of the MongoDB queries. For that to happen the procedure invocation needs to be like {code} native('CollectionName;{$match : { \"CompanyName\" : \"A\"}};{$project : {\"CompanyName\", "userName}}', [param1, param2]) {code} the first parameter must be collection name, then the arguments must match the aggregation pipeline structure delimited by semi-colon (;) between each pipeline statement select x.* from TABLE(call native('city;{$match:{"city":"FREEDOM"}}')) t, xmltable('/city' PASSING JSONTOXML('city', cast(array_get(t.tuple, 1) as BLOB)) COLUMNS city string, state string) x select JSONTOXML('city', cast(array_get(t.tuple, 1) as BLOB)) as col from TABLE(call native('city;{$match:{"city":"FREEDOM"}}')) t;
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
returnsArray
-
Fields inherited from class org.teiid.translator.mongodb.MongoDBBaseExecution
connection, executionContext, metadata, mongoDB
-
-
Constructor Summary
Constructors Constructor Description MongoDBDirectQueryExecution(List<Argument> arguments, Command cmd, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection, String nativeQuery, boolean returnsArray, MongoDBExecutionFactory ef)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancel()
Cancels the execution abnormally.void
close()
Terminates the execution normally.void
execute()
Execute the associated command.List<?>
getOutputParameterValues()
Get the output parameter values.List<?>
next()
Retrieves the next row of the resultset.com.mongodb.DBObject
nextRow()
-
-
-
Constructor Detail
-
MongoDBDirectQueryExecution
public MongoDBDirectQueryExecution(List<Argument> arguments, Command cmd, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection, String nativeQuery, boolean returnsArray, MongoDBExecutionFactory ef)
-
-
Method Detail
-
execute
public void execute() throws TranslatorException
Description copied from interface:Execution
Execute the associated command. Results will be retrieved through a specific sub-interface call.- Specified by:
execute
in interfaceExecution
- Throws:
TranslatorException
-
getOutputParameterValues
public List<?> getOutputParameterValues() throws TranslatorException
Description copied from interface:ProcedureExecution
Get the output parameter values. Results should place the return parameter first if it is present, then the IN/OUT and OUT parameters should follow in the order they appeared in the command.- Specified by:
getOutputParameterValues
in interfaceProcedureExecution
- Throws:
TranslatorException
- If an error occurs while retrieving the output value
-
next
public List<?> next() throws TranslatorException, DataNotAvailableException
Description copied from interface:ResultSetExecution
Retrieves the next row of the resultset.- Specified by:
next
in interfaceResultSetExecution
- Returns:
- the next row or null indicating that there are no more results
- Throws:
TranslatorException
DataNotAvailableException
-
nextRow
public com.mongodb.DBObject nextRow() throws TranslatorException, DataNotAvailableException
-
close
public void close()
Description copied from interface:Execution
Terminates the execution normally.
-
cancel
public void cancel() throws TranslatorException
Description copied from interface:Execution
Cancels the execution abnormally. This will happen via a different thread from the one performing the execution, so should be expected to happen in a multi-threaded scenario.- Specified by:
cancel
in interfaceExecution
- Throws:
TranslatorException
-
-