2017-08-30 84 views
-1

我想与PouchDB查询方法使用链接的文档加入两种类型的我的文档中。通过动态数字链接的文档与PouchDB

const join = (doc) => { 
    if (doc.mediasId === '3') { 
    return emit(doc); 
    } 
} 

Canvas.query(join, {include_docs: true}).then((data) => { 
    console.log(data); 
    this.setState({ 
    canvas: data.rows 
    }); 
}); 

我想替换“3”(测试):

我的代码工作,但不是动态的。如果我在我加入函数添加数参数,我对这样的错误...

任何人有上链接的文档PouchDB使用动态“身份证”的想法?

谢谢!

+0

你什么错误?我们无法很好地帮助您解决您不会透露的错误。 – Flimzy

回答

0

当你正在构建被搜索的索引,动态密钥是行不通的 - 否则系统将不得不建立索引每一个可能的值。

来建立索引,你发出键和值。关键是“发射”的第一个参数,值是第二个参数(其中包含所需的信息)。

该指数按键排序。我不确定你的情况的关键是什么 - 但它会是你试图找到的东西 - 例如。 “person_name”或“car_colour”。要使用CouchDb“链接文档”功能,您必须在值中发出“_id”并使用“include_docs”选项。 “_id”(“链接”)的值作为第一个文档中的值存在。这允许您通过第一个文档中的键进行搜索并访问链接的第二个文档的值。

有一个更好的描述比这在PouchDb documentation上的“查询”和例如像这样...

来建立索引:

function my_index(doc) { 
    // join artist data to albums 
    if (doc.type === 'album') { 
    emit(doc.name, {_id : doc.artistId, albumYear : doc.year}); 
    } 
} 

,然后查询索引,得到链接的文档回:

db.query(my_index, {key: "Dark Side Of The Moon", include_docs : true}).then(function (result) { 
    // handle result 
    console.log(JSON.stringify(result)); 
}).catch(function (err) { 
    console.log(err); 
}); 

的“my_index”功能应保持在数据库中对效率的设计文档,但它是最好的阅读DOCUME为此。希望这可以帮助。