mongodb auto tilvækst sekvens

, mongodb ikke har ud af æsken auto tilvækst funktioner som sql databaser.ved misligholdelse, bruger de 12 byte objectid for, _id, område som primære nøgle til entydigt at identificere de dokumenter.der kan dog være scenarier, hvor vi kan have _id område at have en automatisk øget værdi end den objectid., eftersom dette ikke er en misligholdelse element i mongodb, vil vi programmatically opfylde denne funktion ved hjælp af en, tællere, indsamling, som foreslået af mongodb dokumentation. ved hjælp af mod indsamling, overveje følgende, produkter, dokument.vi ønsker, at den _id område er en auto forøges hele sekvensen fra 1,2,3,4 op, n. ("_id": 1 "product_name": "æble iphone", "kategori": "mobile"}, for det skaber, tællere, indsamling, som følge af den sidste sekvens værdi for alle sekvens områder.> db. createcollection ("tællere"), nu vil vi indsættes følgende nummer i tællere indsamling, productid, som dets vigtigste −, {"_id": "productid", "sequence_value": 0}, det område, sequence_value, holder regnskab med de sidste værdi af sekvensen, anvendes følgende koder for at indsætte denne sekvens dokument i tællere indsamling og minus;> db. tællere. indsæt ((_id: "productid", sequence_value: 0}), at javascript funktion, nu vil vi crespiste en funktion, getnextsequencevalue, som vil tage rækkefølgen navn som input (løbenummer 1 og aflevere opdaterede løbenummer.i vores tilfælde sekvensen hedder, productid,.,> funktion getnextsequencevalue (sequencename) (var - sequencedocument = db. tællere. findandmodify ({forespørgsel: {_id: sequencename}, ajourføre: {$inc. (sequence_value: 1), nye: sande}); tilbage sequencedocument.sequence_value;}, ved hjælp af javascript funktion, vil vi bruge funktion getnextsequencevalue og skaber et nyt dokument, og tildele den returnerede sekvens værdi som dokument er _id område., indsætte to prøve dokumenter ved hjælp af følgende kode −> db. produkter. indsæt ({"_id": getnextsequencevalue ("productid"), "product_name": "æble iphone", "kategori": "mobile"})> db. produkter. indsæt ({"_id": getnextsequencevalue ("productid"), "product_name": "samsung s3 "," kategori ":" mobile "}), som du kan se, har vi brugt getnextsequencevalue funktion at sætte værdi for _id område. for at kontrollere, at de funktioner, lad os hente dokumenter med find - kommandoen og minus;> db. prodcuts. find(), ovennævnte spørgsmål afsagt følgende dokumenter med auto forøges _id område −, {" _id ": 1" product_name ":" æble iphone "," kategori ":" mobile "} {" _id ": 2" product_name ":" samsung s3 "," kategori ":" mobile "), og



Previous:
Next Page:No