sql >> Database >  >> NoSQL >> MongoDB

array met unieke waarden voor alle documenten van één verzameling

Het is misschien mogelijk, als u bereid bent de unieke waarden in een andere verzameling op te slaan . Het zou als volgt gestructureerd zijn:

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

Ik ben geen expert op het gebied van Mongoose, maar ik geloof dat je modellen kunt definiëren om collecties aan elkaar te koppelen, waarbij het accountveld hier verwijst naar het _id-veld van de accountcollectie.

Nu kunt u de uniciteit afdwingen met een eenvoudige index:

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

Nu heeft uw app wat meer werk te doen bij het opslaan van de gegevens (het moet zowel in de uniquestrings-verzameling als in de accountverzameling worden opgeslagen), maar u heeft nu wel handhaving op databaseniveau van de uniciteit van deze strings, over de database.

PS-bewerkingen zijn welkom door iedereen met meer gedetailleerde kennis van het implementeren en gebruiken van dergelijke modellen in mangoest.



  1. MongoDb C#-stuurprogramma, eigenschap van type dat IList implementeert, wordt niet opgeslagen

  2. Een collectie bijwerken vanuit een andere database

  3. Controleer of er waarde bestaat in de mongo-verzameling

  4. MongoDB MapReduce - Emit one key/one value doesn't call reduce