【发布时间】:2018-01-30 19:20:20
【问题描述】:
我们想检查数据库中是否已经存在与我们试图保存的新对象的相同字段和值的文档,以防止重复项。
注意:此问题与更新文档或重复文档 ID 无关,我们仅检查数据以防止保存与现有文档具有相同数据的新文档。
我们最好使用 Mango/Cloudant 查询来完成此任务,而不是依赖视图。
目前的想法是:
1) 扫描我们试图保存的数据并动态创建一个匹配该文档结构的选择器。 (我们不能硬编码选择器,因为我们有很多文档的类型)
2) 查询 de DB 以查找与该选择器匹配的任何文档,如果已经存在任何与这些条件匹配的文档。
但是我想知道这种方法的性能,因为许多选择器字段不会被索引。
我也更愿意遵循最佳实践,而不是突然创造一些东西,但是我还没有找到任何已知的解决方案来解决这个特定的场景。
如果你碰巧知道,请分享。
【问题讨论】:
-
我们在谈论大文件吗?您是否有任何文件样本可以帮助我们提出想法?你总是可以创建一个散列形式的文档内容。
-
有些很小,有些很大,比如 30 个属性用于较大的属性.. 但实际上我们可能不需要进行深入比较.. 对于我们的用例来说可能就足够了,只需比较以下属性即可文档根级别的简单字段(不是 obj 或数组)。
标签: couchdb cloudant couchdb-mango