是否有可以有效检测重复项目的NoSQL数据库?

时间:2011-06-21 04:39:20

标签: mongodb cassandra couchdb database nosql

我希望在保存新条目之前实现一个搜索重复条目的系统,主要是通过IP地址。由于NoSQL数据库具有最终的一致性,因此这似乎不是一个自然的用例。有没有办法让它发挥作用?

2 个答案:

答案 0 :(得分:3)

CouchDB在文档的_id字段中强制实现唯一性。以下是http://guide.couchdb.org

的摘录

在CouchDB数据库中,每个文档必须具有唯一的_id字段。如果您需要数据库中的唯一值,只需将它们分配给文档的_id字段,CouchDB将为您强制实现唯一性。

但是,有一点需要注意:在分布式情况下,当您运行多个接受写请求的CouchDB节点时,只能保证每个节点或CouchDB外部的唯一性。 CouchDB将允许将两个相同的ID写入两个不同的节点。在复制时,CouchDB将检测冲突并相应地标记文档。

答案 1 :(得分:0)

每个关系数据库和MongoDB都支持数据表/集合上的唯一索引,以防止插入重复数据......为什么不够好?

在MongoDB中创建一个独特的索引是直截了当的。尝试插入重复的条目将引发错误(如果您启用了安全模式或检查结果 插入操作)。