Context
The EXTRACTORS chain in extractors/index.ts currently covers two schema sources: PrismaExtractor (full field/relation data) and SQLExtractor (raw pg/mysql2/better-sqlite3 clients → table names as pseudo-entities, no field data). Projects using the native mongodb driver without an ODM have no coverage and fall through to the low-confidence route-hint fallback.
Scope
New NoSQLExtractor implements IEntityExtractor, same pattern as SQLExtractor:
Context
The
EXTRACTORSchain inextractors/index.tscurrently covers two schema sources:PrismaExtractor(full field/relation data) andSQLExtractor(rawpg/mysql2/better-sqlite3clients → table names as pseudo-entities, no field data). Projects using the nativemongodbdriver without an ODM have no coverage and fall through to the low-confidence route-hint fallback.Scope
New
NoSQLExtractor implements IEntityExtractor, same pattern asSQLExtractor:canHandle(): detectmongodbimport (content-based, same regex approach asusesRawSqlClient)extract(): scan.collection("name")/.collection('name')calls via ts-morph AST string literals (not regex-only — same rationale asSQLExtractor's comment on quote-pairing failure modes)fields: [],relations: [],source: "nosql"— NoSQL has no schema metadata to read the way Prisma doesAcceptance criteria
mongodbdriver usage only (Mongoose is a separate extractor, see Render AI markdown cleanly in the terminal #4)EXTRACTORS, after the ORM extractors, alongside/afterSQLExtractorEntityInfo["source"]/EntityGraph["source"]union types intypes.tsextended with"nosql"entity-extractors.test.tscoverage forSQLExtractor