javascript - MongoDB & Prisma: unilaterlana M-do-N veza


Postoji li način da se napravi jednostrana m-prema-n veza ili moraju obje kolekcije imati ID-eve jedna druge? Pokušavam napraviti nešto ovako:

model Country {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  name            String    @unique
  users           User[]
}

model User {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  userName        String    @unique
  countryIds      String[]  @db.ObjectId
  countries       Country[] @relation(fields: [countryIds], references: [id])
  // ....
}

Ali prisma me tjera da dodam još jedno polje u Country za pohranu ID-ova korisnika... Ovako:

model Country {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  name            String    @unique
  userIds         String[]  @db.ObjectId
  users           Player[]  @relation(fields: [userIds], references: [id])
}

Ne trebam te podatke i oni nisu logično potrebni. Postoji li neki način da to zaobiđem? Postoji li neki zaobilazni način?

Odgovor #1

Nakon nekih testiranja otkrio sam da ako ostavim to polje userIds, iako ne postoji u nijednom dokumentu, zemlje korisnika se i dalje mogu ispravno upitirati. Jedini nedostatak (koji zapravo nije problem) je što ne mogu upitavati korisnike iz tih zemalja. Ali pretpostavljam da ima smisla jer ako bih zapravo trebao upitivati njih, dodavanje relacije userIds u zemlju također bi imalo smisla. Stvarni problem je greška koja mi ne dopušta da izgradim/pokrenem kod bez userIds, iako radi bez njega.

UREDI:

Moj je opis završio ovako @Min Somai:

model Country {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  name            String    @unique
  userIds         String[]  @db.ObjectId
  users           User[]    @relation(fields: [countryIds], references: [id])
}

model User {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  userName        String    @unique
  countryIds      String[]  @db.ObjectId
  countries       Country[] @relation(fields: [countryIds], references: [id])
  // ....
}