pouchDB 同步但限制返回的文档?
pouchDB sync but limit the returned docs?
我使用 pouchdb 来监视我的后端 (couchdb) 的变化,并将新添加的项目推送到前端。这是同步代码,但是否有任何选项可以限制返回的文档?
localDB.sync(remoteDB, {
live: true,
retry: true
})
没有限制选项的问题是我无法获得前 10 或 20 条记录。
如果您的目标是同步,但只同步一定数量的文档,请使用 change
观察器进行计数,并在达到限制时中止。
var count = 0,
limit = 10;
var sync = PouchDB.sync('mydb', 'http://localhost:5984/mydb', {
live: true,
retry: true
}).on('change', function (info) {
if (count++ >= limit) {
sync.cancel();
}
})
请注意,这将在 10 个 更改 后取消同步,这与 10 个 文档 不同。这可能是对同一文档的 10 次更改。
如果您关心实际文档,则需要更复杂的逻辑来跟踪已更改文档的数量。
老实说,我不确定同步是否适合您的用例。
仅同步部分数据将无法确保对现有文档进行更新。
如果您只想获取 10-20 个最新数据集,您可以做的是定期查询服务器上的视图,如果不需要,则将结果保存在 memory/localStorage/indexedDb 本地离线编辑它们。
如果您想离线编辑它们,您可以将它们放入具有上游同步功能的 PouchDB 中。到
在保留 _rev 的同时将它们插入到您的数据库中,您可以使用带有选项 {new_edits: false}
的 PouchDBs bulkDocs Api
db.bulkDocs([
{
title : 'Lisa Says',
artist : 'Velvet Underground',
_id : "doc1",
_rev : "1-84abc2a942007bee7cf55007cba56198"
},
{
title : 'Space Oddity',
artist : 'David Bowie',
_id : "doc2",
_rev : "1-7b80fc50b6af7a905f368670429a757e"
}
],
{new_edits: false}).then(function (result) {
// handle result
}).catch(function (err) {
console.log(err);
});
来源:
我使用 pouchdb 来监视我的后端 (couchdb) 的变化,并将新添加的项目推送到前端。这是同步代码,但是否有任何选项可以限制返回的文档?
localDB.sync(remoteDB, {
live: true,
retry: true
})
没有限制选项的问题是我无法获得前 10 或 20 条记录。
如果您的目标是同步,但只同步一定数量的文档,请使用 change
观察器进行计数,并在达到限制时中止。
var count = 0,
limit = 10;
var sync = PouchDB.sync('mydb', 'http://localhost:5984/mydb', {
live: true,
retry: true
}).on('change', function (info) {
if (count++ >= limit) {
sync.cancel();
}
})
请注意,这将在 10 个 更改 后取消同步,这与 10 个 文档 不同。这可能是对同一文档的 10 次更改。
如果您关心实际文档,则需要更复杂的逻辑来跟踪已更改文档的数量。
老实说,我不确定同步是否适合您的用例。
仅同步部分数据将无法确保对现有文档进行更新。
如果您只想获取 10-20 个最新数据集,您可以做的是定期查询服务器上的视图,如果不需要,则将结果保存在 memory/localStorage/indexedDb 本地离线编辑它们。
如果您想离线编辑它们,您可以将它们放入具有上游同步功能的 PouchDB 中。到 在保留 _rev 的同时将它们插入到您的数据库中,您可以使用带有选项 {new_edits: false}
的 PouchDBs bulkDocs Apidb.bulkDocs([
{
title : 'Lisa Says',
artist : 'Velvet Underground',
_id : "doc1",
_rev : "1-84abc2a942007bee7cf55007cba56198"
},
{
title : 'Space Oddity',
artist : 'David Bowie',
_id : "doc2",
_rev : "1-7b80fc50b6af7a905f368670429a757e"
}
],
{new_edits: false}).then(function (result) {
// handle result
}).catch(function (err) {
console.log(err);
});
来源: