背景
我正在使用MongoDB数据库来构建医疗应用程序,在该应用程序中存储药品信息。该数据库中有一些馆藏,其中一个馆藏用于成对药物相互作用。提供给我的数据是基于每种药物的。也就是说,如果 A 是一种与 B , C 和 D 相互作用的药物, (A,B)
,(A,C)
和(A,D)
。但是,当以{{1的形式分析药物 B , C 和 D 的输入数据时,我再次获得相同的信息。 }}等
当然,相应的医学信息是相同的(即, A 与 B 相互作用产生的反应与 B 与 B相互作用> A )。
集合结构
该集合的结构为每个(B,A)
具有三个字段:document
,name1
和name2
。
在第一次创建集合并填充它时,有没有一种方法可以对此集合建立索引,以便将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