是否可以根据该文档的属性检索文档?
如果电子邮件已经存在,我希望能够在注册时测试我的users
吗?但在我看来,您只能通过_id
...
我使用Cloudant作为使用CouchDB的云服务。
答案 0 :(得分:2)
您可以使用电子邮件地址作为文档的ID,因此不能添加具有相同电子邮件的其他文档。您还可以使用CouchDB的基本功能view来检查插入前是否存在电子邮件。这两种方法都需要稍后conflict resolution。如果是第一种情况,则可能存在另一个具有尚未复制的冲突文档的Couch节点。在第二种情况下,两个用户可以将帐户添加到同一服务器,但两者都将首先检查现有的电子邮件,然后两者都将添加他们的帐户。
添加视图需要添加设计文档,其中包含计算视图的定义。您可以使用map
函数创建索引,如下所示:
function (doc) {
if (!doc.email) return;
emit(doc.email, doc);
}
你可以query the view使用:
http://localhost:5984/YOUR_DTABASE/_design/YOUR_DESIGN_DOCUMENT/_view/YOUR_VIEW?key='e-mail@addre.ss'
请注意,电子邮件比较并不像您期望的那样微不足道: