来自 db 的响应是偏移量,不是所有使用 map 函数返回的结果
Response from db is offset, not all results returned using map function
为什么是offset: 1
?
我希望在 Cloudant
的响应中看到 2 rows
,如 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 });
}
查看提供给 view()
函数的键:
1e0a2d30d18d95b9bcc05d92c883d496
1e0ad30d18d95b9bcc05d92c883e272
第二个键短了一个字符 - 它只有 31 个字符,而不是 32 个。我猜你只是在从文档 ID 复制粘贴时错过了最后一个字符。
删除键参数以查看所有行,然后检查第二行的正确键并更新您的代码。
为什么是offset: 1
?
我希望在 Cloudant
的响应中看到 2 rows
,如 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 });
}
查看提供给 view()
函数的键:
1e0a2d30d18d95b9bcc05d92c883d496
1e0ad30d18d95b9bcc05d92c883e272
第二个键短了一个字符 - 它只有 31 个字符,而不是 32 个。我猜你只是在从文档 ID 复制粘贴时错过了最后一个字符。
删除键参数以查看所有行,然后检查第二行的正确键并更新您的代码。