为什么offset: 1
?
我希望在rows
的响应中看到2 Cloudant
,因为total_rows
表示,但由于某种原因它的偏移因此只有1行响应。
控制台输出:
{ total_rows: 2,
offset: 1,
rows:
[ { id: '1e0a2d30d18d95b9bcc05d92c883d496',
key: '1e0a2d30d18d95b9bcc05d92c883d496',
value: [Object] } ] }
调用该函数,处理响应:
viewImpl('test', 'something').then(function(result) {
result.rows.forEach(function(doc) {
console.log(doc.value);
});
res.status(200).send('done');
}
}).catch(someFunc());
功能定义:
App.prototype.viewImpl = function(designName, viewName) {
return new Promise(function(fulfill, reject) {
_this.db.view(designName, viewName, { keys: ["1e0a2d30d18d95b9bcc05d92c883d496","1e0ad30d18d95b9bcc05d92c883e272"] }, function(err, result) {
if (err) {
reject(err);
} else {
fulfill(result);
}
});
});
};
Cloudant
中定义的视图:
function(doc) {
emit(doc._id, { _id: doc._id, _rev: doc._rev, some_field: doc.some_field });
}
答案 0 :(得分:1)
查看view()
功能提供的密钥:
1e0a2d30d18d95b9bcc05d92c883d496
1e0ad30d18d95b9bcc05d92c883e272
第二个键是一个字符更短 - 它只有31个字符而不是32个。我猜你刚从文档ID复制粘贴它时错过了最后一个字符。
删除键参数以查看所有行,然后检查第二行的正确键是什么并更新代码。