有没有可以有效检测重复项的NoSQL数据库?
我正在寻求实现一个在保存新条目之前搜索重复条目的系统(主要是通过 IP 地址)。由于 NoSQL 数据库具有最终一致性,因此这似乎不是一个自然的用例。有办法让它发挥作用吗?
I'm looking to implement a system that searches for duplicate entries before saving new entries, mostly by IP address. Since NoSQL databases have eventual consistency, this doesn't seem like a natural use case. Is there a way to make it work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
CouchDB 强制文档的 _id 字段内的唯一性。以下是 http://guide.couchdb.org 的摘录
在 CouchDB 数据库中,每个文档必须有一个唯一的 _id场地。如果您需要数据库中的唯一值,只需将它们分配给文档的 _id 字段,CouchDB 就会为您强制执行唯一性。
不过,有一个警告:在分布式情况下,当您运行多个接受写入请求的 CouchDB 节点时,只能保证每个节点或 CouchDB 外部的唯一性。 CouchDB 将允许将两个相同的 ID 写入两个不同的节点。在复制时,CouchDB 将检测冲突并相应地标记文档。
CouchDB enforces uniqueness within _id field of the document. Here's and excerpt from http://guide.couchdb.org
Within a CouchDB database, each document must have a unique _id field. If you require unique values in a database, just assign them to a document’s _id field and CouchDB will enforce uniqueness for you.
There’s one caveat, though: in the distributed case, when you are running more than one CouchDB node that accepts write requests, uniqueness can be guaranteed only per node or outside of CouchDB. CouchDB will allow two identical IDs to be written to two different nodes. On replication, CouchDB will detect a conflict and flag the document accordingly.
每个关系数据库和 MongoDB 都支持数据表/集合上的唯一索引,以防止插入重复数据......为什么这还不够好?
在 MongoDB 中创建唯一索引非常简单。尝试插入重复条目将引发错误(如果您使用启用的安全模式或检查结果
插入操作)。
Every relational database and MongoDB supports unique indexes on data tables/collections preventing the insertion of duplicate data...why isn't that good enough?
Creating a unique index in MongoDB is straight forward. Trying to insert duplicate entries will raise an error (if you use safe mode enabled or checking the result
of the insertion operation).