From 55cd442cdb426bc88ad9d49f1bcf828c363fd80c Mon Sep 17 00:00:00 2001 From: zipg Date: Sat, 27 Jun 2026 14:48:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20MongoDB=20=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E6=9F=A5=E8=AF=A2=E9=A2=84=E8=A7=88=E8=AF=AD=E6=B3=95?= =?UTF-8?q?=20(#1989)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: staff --- apps/desktop/src/lib/documentStoreProvider.ts | 3 ++- packages/app-tests/documentStoreProvider.test.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/lib/documentStoreProvider.ts b/apps/desktop/src/lib/documentStoreProvider.ts index 68c773290a..4e879f994b 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 4e93e8d745..a5da898c32 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(