sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB Unique Index på arrayelement över dokument (inte över kapslade dokument)

För att göra detta måste du ändra några saker.

Först och främst måste ditt schema vara ett index så här:

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

Och lägg till useCreateIndex: true i ditt anslutningsalternativ . Jag har till exempel:

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

await mongoose.connect(uri, mongooseOpts);

När du sedan försöker lägga till ett dubblettnummer kommer ett felmeddelande att visas.

Med dessa två steg, om det inte heller fungerade, prova att ta bort collection och skapa igen.




  1. MongoDB:Mappa kapslad array i aggregatfunktion

  2. MongoDB - installationsfel - installationsguiden för mongodb avslutades för tidigt

  3. Hur man slår samman arrayfält i dokument i Mongo-aggregation

  4. Hur kan jag ta bort kapslade arrayelement i ett mongodb-dokument med c#-drivrutinen