在MongoDB中避免交换重复

时间:2018-11-12 20:15:44

标签: database mongodb indexing nosql commutativity

背景

我正在使用MongoDB数据库来构建医疗应用程序,在该应用程序中存储药品信息。该数据库中有一些馆藏,其中一个馆藏用于成对药物相互作用。提供给我的数据是基于每种药物的。也就是说,如果 A 是一种与 B C D 相互作用的药物, (A,B)(A,C)(A,D)。但是,当以{{1的形式分析药物 B C D 的输入数据时,我再次获得相同的信息。 }}等

当然,相应的医学信息是相同的(即, A B 相互作用产生的反应与 B B相互作用> A )。

集合结构

该集合的结构为每个(B,A)具有三个字段:documentname1name2

在第一次创建集合并填充它时,有没有一种方法可以对此集合建立索引,以便将description视为(name1, name2)的副本(因为它们将具有相同的{ {1}})?我不想在集合中插入此类重复项。

P.S。我在MongoDB Java Driver 3.8和MongoDB 4.0.3中使用了

P.P.S示例文档和表格索引信息添加如下:

(name2, name1)

我在description{ "_id" : ObjectId("5be9eaeedb9c7a2836cdd48c"), "name1" : "Lepirudin", "name2" : "St. John's Wort", "description" : "The metabolism of Lepirudin can be increased when combined with St. John's Wort." } 上有一个升序索引,在name1上有一个文本索引。上面的文件是为Lepirudin插入的。我想避免为圣约翰草插入以下文件:

name2

0 个答案:

没有答案