sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man skriver över objekt-ID:n i Mongo db samtidigt som man skapar en app i Sails

Obs :Mongo-id bör vara unikt som möjligt för att skala bra. Standard ObjectId består av en tidsstämpel, maskin-ID, process-ID och ett slumpmässigt ökande värde. Om du bara lämnar den med den sistnämnda blir den kollisionsbenägen.

Men ibland vill du verkligen försköna det oändliga ObjectID-värdet (dvs. att visas i URL:en efter kodning ). Sedan bör du överväga att använda en lämplig atominkrementstrategi .

Åsidosätter exemplet _id:

db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})

Skapa en Sekvens för automatisk ökning :

  • Använd Counters Collection :I grund och botten en separerad samling som håller reda på det sista numret i sekvensen. Personligen har jag tyckt att det är mer sammanhållet att lagra findAndModify-funktionen i system.js-samlingen, även om den saknar versionskontrollens funktioner.
  • Optimistisk loop

Redigera:

Jag har hittat ett problem där sails-mongos ägare sa:

Han nämner den första tekniken jag lade till i det här svaret:Använd Counters Collection . I samma nummer, lewins visar en lösning.




  1. Konvertera MongoDB-fråga till Spring MongoDB-syntax

  2. Det går inte att montera azure filresurser som mongodb-volym i azure-behållareinstanser

  3. MongoDB:Hitta dokumentgivna fältvärden i ett objekt med en okänd nyckel

  4. Varför använder mongoose schema när fördelen med mongodb är att den är schemalös?