2012-10-19 75 views
2

我有這樣一個數據庫:ScriptDb的自動編號

var db = ScriptDb.getMyDb(); 

var ob = { 
    type: "employee", 
    employee_id: 1, 
    name: { 
     first: "Fatima", 
     initial: "S", 
     last: "Pauli" 
    }, 
    address: { 
     street: "4076 Washington Avenue", 
     city: "Jackson", state: "MS", zip: "39201" 
    }, 
    department_id: 52 
}; 

var stored = db.save(ob); 

現在我想的employee_id有自動遞增不用循環槽整個現有的數據庫。

這樣做的最好方法是什麼?

回答

1

一種解決方案是存儲employee_id的電流最大值在一個單獨的ScriptDB對象,並使用LockService提供原子,閱讀和遞增操作期間,如圖here,。

+0

爲什麼我沒有想到,我不知道....爲什麼我應該使用鎖定服務? – Thomas

+1

因爲如果不鎖定,腳本的多個實例可能會同時運行,並且最終使用兩個或更多個條目的相同編號。 –

+0

好的,謝謝你兩個它完美的作品:) – Thomas