mongo driver - collection export scripts

This commit is contained in:
Jan Prochazka
2024-08-20 09:15:10 +02:00
parent 9bc654cd38
commit 30e3bc6eeb
4 changed files with 40 additions and 9 deletions

View File

@@ -154,4 +154,11 @@ export const driverBase = {
getFilterBehaviour(dataType: string, standardFilterBehaviours) {
return detectSqlFilterBehaviour(dataType);
},
getCollectionExportQueryScript(collection: string, condition: any, sort: any) {
return null;
},
getCollectionExportQueryJson(collection: string, condition: any, sort: any) {
return null;
},
};

View File

@@ -159,7 +159,7 @@ export interface EngineDriver extends FilterBehaviourProvider {
getAuthTokenFromCode(connection, options): Promise<string>;
getAccessTokenFromAuth(connection, req): Promise<string | null>;
getCollectionExportQueryScript(collection: string, condition: any, sort: any): string;
getCollectionExportQueryJson(collection: string, condition: any, sort: any): string;
getCollectionExportQueryJson(collection: string, condition: any, sort: any): {};
analyserClass?: any;
dumperClass?: any;

View File

@@ -172,17 +172,27 @@
// $: if (onChangeGrider) onChangeGrider(grider);
function getExportQuery() {
return `db.collection('${pureName}')
.find(${JSON.stringify(buildConditionForGrid($$props) || {})})
.sort(${JSON.stringify(buildMongoSort($$props) || {})})`;
return display?.driver?.getCollectionExportQueryScript?.(
pureName,
buildConditionForGrid($$props),
buildMongoSort($$props)
);
// return `db.collection('${pureName}')
// .find(${JSON.stringify(buildConditionForGrid($$props) || {})})
// .sort(${JSON.stringify(buildMongoSort($$props) || {})})`;
}
function getExportQueryJson() {
return {
collection: pureName,
condition: buildConditionForGrid($$props) || {},
sort: buildMongoSort($$props) || {},
};
return display?.driver?.getCollectionExportQueryJson?.(
pureName,
buildConditionForGrid($$props),
buildMongoSort($$props)
);
// return {
// collection: pureName,
// condition: buildConditionForGrid($$props) || {},
// sort: buildMongoSort($$props) || {},
// };
}
export async function exportGrid() {

View File

@@ -1,4 +1,5 @@
const { driverBase } = global.DBGATE_TOOLS;
const { convertToMongoCondition } = require('./convertToMongoCondition');
const Dumper = require('./Dumper');
const { mongoSplitterOptions } = require('dbgate-query-splitter/lib/options');
@@ -97,6 +98,19 @@ const driver = {
getFilterBehaviour(dataType, standardFilterBehaviours) {
return standardFilterBehaviours.mongoFilterBehaviour;
},
getCollectionExportQueryScript(collection, condition, sort) {
return `db.collection('${collection}')
.find(${JSON.stringify(convertToMongoCondition(condition || {}))})
.sort(${JSON.stringify(sort || {})})`;
},
getCollectionExportQueryJson(collection, condition, sort) {
return {
collection,
condition: convertToMongoCondition(condition || {}),
sort: sort || {},
};
},
};
module.exports = driver;