sql >> Databáze >  >> NoSQL >> MongoDB

Jedinečný index MongoDB na prvku pole napříč dokumenty (nikoli ve vnořených dokumentech)

Chcete-li to provést, musíte změnit několik věcí.

Za prvé, vaše schéma musí být index takhle:

number: {
  type: String,
  index: true, // <-- This line
  unique: true
}

A do možnosti připojení přidejte useCreateIndex: true . Mám například:

const mongooseOpts = {
    useNewUrlParser: true,
    useFindAndModify: false,
    useUnifiedTopology: true,
    useCreateIndex: true //<-- This line
};

await mongoose.connect(uri, mongooseOpts);

Poté, když se pokusíte přidat duplicitní telefonní číslo, dojde k chybě.

Pokud tyto dva kroky nefungují, zkuste odstranit collection a znovu vytvořit.




  1. Mongodb seskupit podle pole pomocí $substr

  2. Jak se dotazuji na odkazované objekty v MongoDB?

  3. MongoDB Pomalé načítání dokumentů (použito indexování)

  4. Jaký je časově nejefektivnější způsob serializace/deserializace DataTable do/z Redis?