1. pouchdb安装, 直接下载pouchdb.min.js或者:

    npm install pouchdb

或者加上--save

  1. pouchdb结合js使用, 在浏览器中为:
<script src="pouchdb-6.3.4.min.js"></script>

so Easy!
在node中为:

var PouchDB = require('pouchdb');

不用开服务!

  1. Pouchdb创建数据库:
var db = new PouchDB('kittens');
//创建好看看基础信息
db.info().then(function (info) {
  console.log(info);
})
  1. 调试

在chrome中可以查看indexedDB,pouchdb用它做基础数据库. node中使用levelDB做数据库. 老浏览器使用webSQL做基础数据库. 远程数据库可使用couchdb等.
可以使用如下语句开关debug打印:

PouchDB.debug.enable('*');
PouchDB.debug.disable();
  1. 增删改查

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);
});
  1. 批量操作

批量增(改删) //改只需要加入_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});
  1. 操作附件(二级制)待补全 work with attachments

  2. 快速搜索
    要搜索除了_id以外的其他字段, 有三种方式:
    mongo query
    map/reduce query
    第三方的pouchdb-quick-search

标签: none 阅读量: 1040

添加新评论