使用cradle,我如何将参数传递给CouchDB中的视图?
的更新
假设我想要返回与_key
(默认)...
// document format
{
_key,
postHeading,
postBody,
postDate
}
如果我想将文档与postHeading
属性进行匹配怎么办...我该怎么做?视图会是什么样的,我如何将搜索字符串传递给该视图?
目前我正在这样做......
database.get("980f2ba66d5c8f9c91b9204a4d00022a", function (error, document)
{
});
我想访问一个视图,而不是40个字符长的自动生成的密钥,我想传递一个字符串,匹配另一个属性。
有些事情......
database.save("_design/posts", {
single: {
map: function (document)
{
if (document.postHeading == PARAMETER_PASSED_GOES_HERE)
emit(null, document);
}
}
});
database.view("posts/single", function (error, documents)
{
});
答案 0 :(得分:3)
如果您要查询视图,请尝试使用您的设置将第二个参数作为选项对象传递,例如:
db.view('characters/all', {descending: true}, function (err, res) {
res.forEach(function (row) {
sys.puts(row.name + " is on the " +
row.force + " side of the force.");
});
});
还要注意这一点:
一些查询字符串参数的值 必须是JSON编码。
修改强>
据我所知,您无法在CouchDB中创建一个视图,您可以在其中传递将在map / reduce函数代码中使用的自定义参数。您必须从地图功能发出密钥,并根据它们,您可以使用startkey
和endkey
等参数查询视图。试着查看Database Queries the CouchDB Way文章。
答案 1 :(得分:-2)
db.get('vader', function (err, doc) {
doc.name; // 'Darth Vader'
assert.equal(doc.force, 'dark');
});
看起来这里的搜索值(参数)是所有强制键中的“暗”吗?
Cradle也可以获取多个 如果你有一个id列表, 只需传递一个数组即可:
db.get(['luke','vader'],函数 (错误,doc){...});