diff --git a/apps/desktop/src/lib/documentStoreProvider.ts b/apps/desktop/src/lib/documentStoreProvider.ts index 68c773290..4e879f994 100644 --- a/apps/desktop/src/lib/documentStoreProvider.ts +++ b/apps/desktop/src/lib/documentStoreProvider.ts @@ -47,7 +47,8 @@ const mongoDocumentProvider: DocumentStoreProvider = { sortInputLabel: "sort", documentsLabel: ({ total, t }) => t("mongo.documents", { count: total }), queryPreview: ({ collection, filterJson, sortJson, skip, limit }) => { - const parts = [`db.${collection}.find(${filterJson || "{}"})`]; + const collectionRef = `db.getCollection(${JSON.stringify(collection)})`; + const parts = [`${collectionRef}.find(${filterJson || "{}"})`]; if (sortJson?.trim()) parts.push(`.sort(${sortJson.trim()})`); parts.push(`.skip(${skip}).limit(${limit})`); return parts.join(""); diff --git a/packages/app-tests/documentStoreProvider.test.ts b/packages/app-tests/documentStoreProvider.test.ts index 4e93e8d74..a5da898c3 100644 --- a/packages/app-tests/documentStoreProvider.test.ts +++ b/packages/app-tests/documentStoreProvider.test.ts @@ -24,7 +24,8 @@ test("providers build store-specific query previews", () => { const elasticsearch = documentStoreProviderFor("elasticsearch"); assert.equal(mongo.documentsLabel({ total: 7, t }), "mongo.documents:7"); - assert.equal(mongo.queryPreview({ collection: "orders", filterJson: '{"city":"长治"}', sortJson: '{"createdAt":-1}', skip: 20, limit: 10 }), 'db.orders.find({"city":"长治"}).sort({"createdAt":-1}).skip(20).limit(10)'); + assert.equal(mongo.queryPreview({ collection: "orders", filterJson: '{"city":"长治"}', sortJson: '{"createdAt":-1}', skip: 20, limit: 10 }), 'db.getCollection("orders").find({"city":"长治"}).sort({"createdAt":-1}).skip(20).limit(10)'); + assert.equal(mongo.queryPreview({ collection: "order-events", filterJson: '{"city":"长治"}', sortJson: undefined, skip: 0, limit: 100 }), 'db.getCollection("order-events").find({"city":"长治"}).skip(0).limit(100)'); assert.equal(elasticsearch.documentsLabel({ total: 7, t }), "Documents"); assert.equal(elasticsearch.filterInputLabel, "filter"); assert.equal(