Pozor :Mongo id by mělo být co nejjedinečnější aby se dobře škálovalo. Výchozí ObjectId se skládá z časového razítka, ID stroje, ID procesu a náhodně se zvyšující hodnoty. Ponecháte-li jej pouze u druhého jmenovaného, bude náchylný ke kolizi.
Někdy však chcete zkrášlit nekonečnou hodnotu ObjectID (tj. aby se zobrazila v adrese URL po kódování ). Poté byste měli zvážit použití vhodné strategie atomového přírůstku .
Přepsání příklad _id:
db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})
Vytvoření sekvence automatického zvyšování :
- Používejte sbírku počítadel :V podstatě oddělená kolekce, která sleduje poslední číslo sekvence. Osobně jsem zjistil, že je soudržnější uložit funkci findAndModify do kolekce system.js, ačkoli chybí možnosti správy verzí.
- Optimistická smyčka
Upravit:
Našel jsem problém ve kterém majitel sails-mongo řekl:
V této odpovědi zmiňuje první techniku, kterou jsem přidal:Použít kolekci čítačů . Ve stejném vydání lewins ukazuje řešení.