我有一个这样的文档数据库:
{
"_id" : "37686aeb8d65e77665af55e69801a62c",
"ip" : "192.168.1.1",
"mac" : "01:23:45:67:89:ab"
}
我有一个带有更新处理程序的设计文档。如何检查新文档是否具有唯一的 mac 地址?在CouchDB中可能吗?
跨数据库唯一保证的唯一值是_id
,因此如果要将此控件委托给CouchDB,则必须将其设置为mac地址。
否则,您必须通过带有map和reduce的视图功能自行处理它:map函数发出mac地址,减少一个分组并计数。但是这样做的代价是在添加数据之前进行额外的视图查找,并从您那里清理重复项的一些逻辑,但是您始终会遇到重复值同时在数据库中的情况。