保存對象
AV.Object 對象在保存時可以設(shè)置選項來快捷完成關(guān)聯(lián)操作,可用的選項屬性有:
| 選項 | 類型 | 說明 |
|---|---|---|
| fetchWhenSave | BOOL | 對象成功保存后,自動返回該對象在云端的最新數(shù)據(jù)。用途請參考 更新計數(shù)器 |
| query | AV.Query | 當(dāng) query 中的條件滿足后對象才能成功保存,否則放棄保存,并返回錯誤碼 305。 |
示例:
new AV.Query('Wiki').first().then(function (data) {
var wiki = data;
var currentVersion = wiki.get('version');
wiki.set('version', currentVersion + 1);
wiki.save(null, {
query: new AV.Query('Wiki').equalTo('version', currentVersion)
}).then(function (data) {
}, function (error) {
if (error) {
throw error;
}
});
}, function (error) {
if (error) {
throw error;
}
});
獲取對象
每個被成功保存在云端的對象會有一個唯一的 Id 標(biāo)識 id,因此獲取對象的最基本的方法就是根據(jù) id 來查詢:
var query = new AV.Query('Todo');
query.get('57328ca079bc44005c2472d0').then(function (data) {
// 成功獲得實例
// data 就是 id 為 57328ca079bc44005c2472d0 的 Todo 對象實例
}, function (error) {
// 失敗了
});
如果不想使用查詢,還可以通過從本地構(gòu)建一個 id,然后調(diào)用接口從云端把這個 id 的數(shù)據(jù)拉取到本地,示例代碼如下:
// 第一個參數(shù)是 className,第二個參數(shù)是 objectId
var todo = AV.Object.createWithoutData('Todo', '5745557f71cfe40068c6abe0');
var title = todo.get('title');// 讀取 title
var content = todo.get('content');// 讀取 content
獲取 objectId
每一次對象存儲成功之后,云端都會返回 id,它是一個全局唯一的屬性。
var todo = new Todo();
todo.set('title', '工程師周會');
todo.set('content', '每周工程師會議,周一下午2點');
todo.save().then(function (todo) {
// 成功保存之后,執(zhí)行其他邏輯
// 獲取 objectId
var objectId = todo.id;
}, function (error) {
// 失敗之后執(zhí)行其他邏輯
console.log(error);
});