码迷,mamicode.com
首页 > 数据库 > 详细

[PWA] 13. New db and object store

时间:2016-05-18 06:51:49      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

Create a db:

import idb from ‘idb‘;

var dbPromise = idb.open(‘test-db‘, 2, function (upgradeDb) {
    switch (upgradeDb.oldVersion) {
        case 0:
            // keyval store is already created at version 1
            var keyValStore = upgradeDb.createObjectStore(‘keyval‘);
            keyValStore.put("world", "hello");
        case 1:
            // new version
            upgradeDb.createObjectStore(‘people‘, {keyPath: ‘name‘});
    }
});

The oldVersion switch between old db and new db. So here we create a new people db.

 

ReadWrite:

dbPromise.then(function (db) {
    var tx = db.transaction(‘people‘, ‘readwrite‘);
    var peopleStore = tx.objectStore(‘people‘);

    peopleStore.put({
        name: "John", // name is the key
        age: 23,
        favoriteAnimal: ‘cat‘
    });
    peopleStore.put({
        name: "Joe", // name is the key
        age: 21,
        favoriteAnimal: ‘cat‘
    });
    peopleStore.put({
        name: "Jie", // name is the key
        age: 22,
        favoriteAnimal: ‘dog‘
    });
    peopleStore.put({
        name: "Jay", // name is the key
        age: 24,
        favoriteAnimal: ‘dog‘
    });
    return tx.complete;
}).then(function () {
    console.log("People are added");
});

dbPromise.then(function (db) {
    var tx = db.transaction(‘people‘);
    var peopleStore = tx.objectStore(‘people‘);
    return peopleStore.getAll();
}).then(function (people) {
    console.table(people);
});

 


 

Group By:
TO do gourp by we need to create index:

import idb from ‘idb‘;

var dbPromise = idb.open(‘test-db‘, 3, function (upgradeDb) {
    switch (upgradeDb.oldVersion) {
        case 0:
            // keyval store is already created at version 1
            var keyValStore = upgradeDb.createObjectStore(‘keyval‘);
            keyValStore.put("world", "hello");
        case 1:
            // new version
            upgradeDb.createObjectStore(‘people‘, {keyPath: ‘name‘});
        case 2:
            var peopleStore = upgradeDb.transaction.objectStore(‘people‘);
            peopleStore.createIndex(‘animal‘, ‘favoriteAnimal‘);
    }
});

 

Group by animal:

dbPromise.then(function (db) {
    var tx = db.transaction(‘people‘);
    var peopleStore = tx.objectStore(‘people‘);
    var animalIndex = peopleStore.index(‘animal‘);
    //return animalIndex.getAll(); // all the animals
    return animalIndex.getAll(‘cat‘); // only cat
}).then(function (people) {
    console.table(people);
});

技术分享

[PWA] 13. New db and object store

标签:

原文地址:http://www.cnblogs.com/Answer1215/p/5503850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!