如何使用cradle(CouchDB)将参数传递给视图



使用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)
{           
});

如果您正在查询视图,请尝试将第二个参数作为选项对象与您的设置一起传递,例如:

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函数代码中使用。您必须从映射函数中发出键,并基于这些键可以使用参数(如startkeyendkey(查询视图。试着看看数据库查询CouchDB方式的文章。

db.get('vader', function (err, doc) {
    doc.name; // 'Darth Vader'
    assert.equal(doc.force, 'dark');
});

看起来这里搜索的值(参数(在所有强制键中都是"暗"的?

摇篮还可以获得多个文档如果你有一个id列表,只需传递一个数组即可获得:

db.get(['luke','vader'],函数(呃,doc({…}(;

最新更新