sql >> Database teknologi >  >> NoSQL >> MongoDB

array med unikke værdier over alle dokumenter i én samling

Det kan være muligt, hvis du er villig til at gemme de unikke værdier i en anden samling . Det ville være struktureret sådan:

{ "uniquestring" : "a", "account" : 111 }
{ "uniquestring" : "b", "account" : 111 }
{ "uniquestring" : "c", "account" : 111 }
{ "uniquestring" : "d", "account" : 222 }
{ "uniquestring" : "e", "account" : 222 }
{ "uniquestring" : "f", "account" : 222 }

Jeg er ikke ekspert i Mongoose, men jeg mener, at du kan definere modeller til at linke samlinger sammen, hvor kontofeltet her refererer til kontosamlingens _id-felt.

Nu kan du håndhæve det unikke med et ligetil indeks:

db.uniquestrings.createIndex( { "uniquestring" : 1 } , { unique : true } )

Nu vil din app have lidt mere arbejde at gøre, når du gemmer dataene (den skal gemme i unikke strenge-samlingen såvel som kontosamlingen), men du har nu håndhævelse på databaseniveau af det unikke ved disse strenge på tværs af databasen.

PS-redigeringer er velkomne fra alle med mere detaljeret viden om, hvordan man implementerer og bruger sådanne modeller i mongoose.



  1. Fjerner dokumenter fra en mongodb-samling fra node.js

  2. Gem dato i MongoDB uden at tage tidszonen i betragtning

  3. Sådan ændres underdokument efter at have fundet med mongoose

  4. Forsøger at starte redis og resque scheduler inden for en rake-opgave