diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte
index 29ec2af73..da193a886 100644
--- a/packages/web/src/datagrid/DataGridCore.svelte
+++ b/packages/web/src/datagrid/DataGridCore.svelte
@@ -490,7 +490,11 @@
function getSelectedDataJson(forceArray = false) {
const cells = cellsToRegularCells(selectedCells);
- const data = cells.map(cell => grider.getRowData(cell[0])[realColumnUniqueNames[cell[1]]]);
+ const data = cells.map(cell => {
+ const rowData = grider.getRowData(cell[0]);
+ if (!rowData) return null;
+ return rowData[realColumnUniqueNames[cell[1]]];
+ });
if (!data.every(x => _.isArray(x) || _.isPlainObject(x))) return null;
if (data.length == 0) return null;
if (data.length == 1 && _.isPlainObject(data[0]) && !forceArray) return data[0];
diff --git a/packages/web/src/modals/ConfirmNoSqlModal.svelte b/packages/web/src/modals/ConfirmNoSqlModal.svelte
index 473e674ff..ec0acf0d6 100644
--- a/packages/web/src/modals/ConfirmNoSqlModal.svelte
+++ b/packages/web/src/modals/ConfirmNoSqlModal.svelte
@@ -4,6 +4,7 @@
import FormSubmit from '../forms/FormSubmit.svelte';
import JSONTree from '../jsontree/JSONTree.svelte';
import AceEditor from '../query/AceEditor.svelte';
+import newQuery from '../query/newQuery';
import ModalBase from './ModalBase.svelte';
import { closeCurrentModal } from './modalTools';
@@ -29,6 +30,17 @@
}}
/>
+ {
+ newQuery({
+ initialData: script,
+ });
+
+ closeCurrentModal();
+ }}
+ />
diff --git a/plugins/dbgate-plugin-mongo/src/backend/driver.js b/plugins/dbgate-plugin-mongo/src/backend/driver.js
index 7a91af6c5..25fa56eb9 100644
--- a/plugins/dbgate-plugin-mongo/src/backend/driver.js
+++ b/plugins/dbgate-plugin-mongo/src/backend/driver.js
@@ -21,7 +21,9 @@ const mongoIdRegex = /^[0-9a-f]{24}$/;
function convertConditionInternal(condition) {
if (condition && _.isString(condition._id) && condition._id.match(mongoIdRegex)) {
return {
- _id: ObjectId(condition._id),
+ _id: {
+ $in: [condition._id, ObjectId(condition._id)],
+ },
};
}
return condition;
diff --git a/plugins/dbgate-plugin-mongo/src/frontend/driver.js b/plugins/dbgate-plugin-mongo/src/frontend/driver.js
index 431574953..edf10f2a2 100644
--- a/plugins/dbgate-plugin-mongo/src/frontend/driver.js
+++ b/plugins/dbgate-plugin-mongo/src/frontend/driver.js
@@ -7,7 +7,7 @@ const mongoIdRegex = /^[0-9a-f]{24}$/;
function getConditionPreview(condition) {
if (condition && _isString(condition._id) && condition._id.match(mongoIdRegex)) {
- return `{ _id: ObjectId('${condition._id}') }`;
+ return `{ _id: { $in: ['${condition._id}', ObjectId('${condition._id}')] } }`;
}
return JSON.stringify(condition);
}