sql >> Databáze >  >> NoSQL >> MongoDB

Jak přepsat ID objektů v Mongo db při vytváření aplikace v Sails

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í.




  1. Výkon Redis na vícejádrovém CPU

  2. vnořené dotazy v pymongo pomocí collection.find()

  3. Regulární výraz MongoDB:Obsahuje e-mail uvnitř řetězce

  4. Existuje způsob, jak vytvořit nebo aktualizovat index MongoDB?