diff --git a/package.json b/package.json index 60db77d..74f8286 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "shrimp-server", - "version": "0.7.10", + "version": "0.7.11", "description": "Shrimp 框架后端 — 声明式字段驱动的 Node.js 管理后台框架(Express + Mongoose + JWT)", "main": "dist/main/index.js", "types": "dist/main/index.d.ts", diff --git a/src/forMongo/MongoShrimpCrud.ts b/src/forMongo/MongoShrimpCrud.ts index cc7ff29..b69d044 100644 --- a/src/forMongo/MongoShrimpCrud.ts +++ b/src/forMongo/MongoShrimpCrud.ts @@ -79,9 +79,10 @@ export class MongoShrimpCrud implements ShrimpCrud { const allRefIds = new Set() for (const item of items) { const val = (item as any)[pop.key] + // 跳过空串:可选 Relation 常存 "",混进 { _id: { $in } } 会让 Mongoose 转 ObjectId 抛 CastError、整页 500。 if (Array.isArray(val)) { - val.forEach((id: any) => { if (id != null) allRefIds.add(String(id)) }) - } else if (val != null) { + val.forEach((id: any) => { if (id != null && id !== "") allRefIds.add(String(id)) }) + } else if (val != null && val !== "") { allRefIds.add(String(val)) } }