簡體   English   中英

如何在indexedDB中存儲mongodb的集合數組

[英]how to store a mongodb array of collections inside an indexedDB

您好,我想為我的phonegap建立一個本地數據庫,以便用戶可以離線使用它。

我在創建數據庫的角度函數中具有此功能。

   function Database() {

    return {
        create: function (itemDocs) {

            var db = null;

            var request = indexedDB.open("myDB", 1);

            request.onsuccess = function (event) {
                db = event.target.result;
                console.log("DB loaded successfully");

            };

            request.onerror = function (event) {
                console.log(event)
            };

            request.onupgradeneeded = function (event) {
                db = event.target.result;
                console.log("DB initiliazed / created");

                //create collections
                db.createObjectStore("items", {keyPath: "_id"});

                //create documents
                var transaction = db.transaction(["items"], "readwrite");

                var items = transaction.objectStore("items");

                items.add(itemDocs);

            };


        }
    }

}

itemDocs擁有一個mongoDB集合(這是一個對象數組),我想將該集合存儲在indexedDB數據庫中,問題是我遇到了這個煩人的錯誤。

Uncaught InvalidStateError: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running.

使用var transaction = event.target.transaction而不是var transaction = db.transaction(...);

完整的答案相當冗長。 簡而言之,您不需要在onupgradeneed上創建新事務。 您已經有一個有效的交易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM