pouchdb安装, 直接下载pouchdb.min.js或者:
npm install pouchdb
或者加上--save
- pouchdb结合js使用, 在浏览器中为:
<script src="pouchdb-6.3.4.min.js"></script>
so Easy!
在node中为:
var PouchDB = require('pouchdb');
不用开服务!
- Pouchdb创建数据库:
var db = new PouchDB('kittens');
//创建好看看基础信息
db.info().then(function (info) {
console.log(info);
})
- 调试
在chrome中可以查看indexedDB,pouchdb用它做基础数据库. node中使用levelDB做数据库. 老浏览器使用webSQL做基础数据库. 远程数据库可使用couchdb等.
可以使用如下语句开关debug打印:
PouchDB.debug.enable('*');
PouchDB.debug.disable();
- 增删改查
pouchdb中没有与table对应的概念(在mongodb中是collection).
row->document
column->field
primary key->'_id'
index->view
增,必须定义好_id字段才能存:
var doc = {
"_id": "mittens",
"name": "Mittens",
"occupation": "kitten",
"age": 3,
"hobbies": [
"playing with balls of yarn",
"chasing laser pointers",
"lookin' hella cute"
]
};
db.put(doc);
查
db.get('mittens').then(function (doc) {
console.log(doc);
});
/* 输出
{
"name": "Mittens",
"occupation": "kitten",
"age": 3,
"hobbies": [
"playing with balls of yarn",
"chasing laser pointers",
"lookin' hella cute"
],
"_id": "mittens",
"_rev": "1-bea5fa18e06522d12026f4aee6b15ee4" //注意这个_rev, 改的时候一定要有. 每次增/改的写操作都会变更rev.
}
*/
改
doc.age = 4;
doc._rev = "1-bea5fa18e06522d12026f4aee6b15ee4";
db.put(doc);
删. 不是真的删除, 而是加了一个_deleted:true的标志.
// 删法1
db.get('mydoc').then(function (doc) {
return db.remove(doc);
});
// 删法2
db.get('mydoc').then(function (doc) {
return db.remove(doc._id, doc._rev);
});
// 删法3
db.get('mydoc').then(function (doc) {
doc._deleted = true;
return db.put(doc);
});
- 批量操作
批量增(改删) //改只需要加入_rev,删只需要加入_deleted
db.bulkDocs([
{
_id: 'mittens',
occupation: 'kitten',
cuteness: 9.0
},
{
_id: 'katie',
occupation: 'kitten',
cuteness: 7.0
},
{
_id: 'felix',
occupation: 'kitten',
cuteness: 8.0
}
]);
批量查
db.allDocs({include_docs: true});
操作附件(二级制)待补全 work with attachments
快速搜索
要搜索除了_id以外的其他字段, 有三种方式:
mongo query
map/reduce query
第三方的pouchdb-quick-search