-
-
Save nolanlawson/a44ccf92338fa9593e03 to your computer and use it in GitHub Desktop.
Sample Pouch db example with collate
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<body> | |
<input type="text" id="keyVal"><button onclick="getResult()">Filter</button><button onclick="getAllDocs()">Show available doc</button><button onclick="generateDoc()">Generate Doc</button><button onclick="destroyDB()">Destroy DB & Reload</button> | |
<div id="result"></div> | |
<script src="//cdn.jsdelivr.net/pouchdb/latest/pouchdb.min.js"></script> | |
<script src="https://rawgit.com/pouchdb/collate/master/dist/pouchdb-collate.js"></script> | |
<script src="init.js"></script> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function destroyDB(){ | |
if(newDB){ | |
newDB.destroy(); | |
location.reload(); | |
} | |
} | |
function getAllDocs(){ | |
newDB.allDocs({include_docs:true}).then(function(result){ | |
printResult(result['rows']) | |
console.log(result) | |
}) | |
} | |
function getResult(){ | |
var keyVal = document.getElementById('keyVal').value || 'a'; | |
var start = pouchCollate.toIndexableString([keyVal]); | |
var end = pouchCollate.toIndexableString([keyVal, {}]); | |
newDB.allDocs({include_docs:true,startkey:start,endkey:end}).then(function(filteredResult){ | |
printResult(filteredResult['rows']); | |
console.log(filteredResult) | |
}).catch(console.log.bind(console)); | |
} | |
function printResult(data){ | |
var len = data.length, | |
strObj = ''; | |
for(var i=0;i<len;i++){ | |
var doc = data[i]['doc'] | |
strObj+="{<br/>"; | |
for( j in doc){ | |
strObj += j+" : "+doc[j]+"<br/>" | |
} | |
strObj+="key :"+ data[i].key+"<br/>" | |
strObj+="id :"+ data[i].id+"<br/>" | |
strObj+="}<br/>"; | |
} | |
document.getElementById('result').innerHTML = strObj | |
} | |
function stringGen(len) | |
{ | |
var text = ""; | |
var charset = "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789"; | |
for( var i=0; i < len; i++ ) | |
text += charset.charAt(Math.floor(Math.random() * charset.length)); | |
return text; | |
} | |
var jsObj = []; | |
var newDB; | |
function generateDoc(){ | |
for(var i=0;i<10;i++){ | |
var newObj = {}; | |
newObj.title = stringGen(10); | |
newObj.subject= stringGen(10)+" "+stringGen(10); | |
newObj.content=stringGen(100)+" "+stringGen(100)+" "+stringGen(100); | |
newObj._id = pouchCollate.toIndexableString([newObj.title,newObj.subject]); | |
jsObj.push(newObj); | |
} | |
newDB.bulkDocs(jsObj).then(function(){ | |
newDB.allDocs({include_docs:true}).then(function(result){ | |
printResult(result['rows']) | |
console.log(result) | |
}) | |
}); | |
} | |
window.onload = function(){ | |
newDB = new PouchDB('test'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment