У меня есть некоторые объекты для сохранения в базе данных, но они должны быть уникальными при каждом выполнении скрипта. Эти объекты просто будут менять значения в каждом экземпляре приложения. Проблема в том, что когда я создаю первый объект, каждый раз, когда после этого выполняется скрипт, создаются дополнительные копии. Я пытаюсь снова использовать тот же объект, но когда я делаю запрос, я получаю объекты из предыдущих выполнений, дающие мне неправильные значения. Я просто хочу иметь возможность сбросить те же объекты до их значений по умолчанию и не иметь много ненужных копий в ScriptDb.
Вот код:
// Get a database instance
var database = getDb();
// Create a new employee instance
var myEmployee = {
element: "currentEmployee",
firstName: "",
lastName: "",
ID: 0,
manager: "",
managerEmail: "",
department: "1 - University Store",
startDate: "",
endDate: "",
regularHours: 0,
vacationHours: 0,
sickHours: 0,
personalHours: 0,
H2Hours: 0,
overtimeHours: 0,
totalHours: 0,
rowLocation: 0,
salaryType: "H",
};
var week1 = {
// Identify the week and for query purposes
element: "Week1",
// User entries
HW: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
VH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
SH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
PH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
TH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
// Calculated totals
TotalHW:0, TotalVH: 0, TotalSH: 0, TotalPH: 0, TotalHours: 0,
// Week totals
Vacation: 0, Sick: 0, Personal: 0, H2: 0, OT: 0, Regular: 0,
}
var week2 = {
// Identify the week and for query purposes
element: "Week2",
// User entries
HW: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
VH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
SH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
PH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
TH: {THUR: 0, FRI: 0, SAT: 0, SUN: 0, MON: 0, TUES: 0, WED: 0},
// Calculated totals
TotalHW:0, TotalVH: 0, TotalSH: 0, TotalPH: 0, TotalHours: 0,
// Week totals
Vacation: 0, Sick: 0, Personal: 0, H2: 0, OT: 0, Regular: 0,
}
// Save these to the database
database.save(myEmployee);
database.save(week1);
database.save(week2);
Затем я бы использовал оператор ScriptDb.getMyDb.query({element: element}).next()
для извлечения объекта. Строковый элемент, содержащий «currentEmployee», «Week1» или «Week2».
var obj = db.query({element: elemName}).next()
, затем внести изменения вobj
, сделав все, что вам нужно, и завершить это с помощьюdb.save(obj)
. Не переопределяйте новый объект и не сохраняйте его в базе данных, потому что это создаст новый элемент в базе данных. - person Phil Bozak   schedule 07.02.2013