2012-10-19 43 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