背景
我正在使用 MongoDB 数据库构建一个医疗应用程序,其中存储药物信息。该数据库中有一些集合,其中之一是成对药物相互作用。提供给我的数据是基于每种药物的。也就是说,如果A是与B、C和D相互作用的药物,我会得到(A,B)
、(A,C)
和对(A,D)
。但是,在解析药物B、C和D(B,A)
等形式的输入数据时,我再次获得了相同的信息。
当然,相应的医学信息是相同的(即,A与B交互产生与B与A交互相同的反应)。
集合结构
该集合的结构是每个都document
具有三个字段:name1
、name2
和description
。
在第一次创建集合并填充它时,有没有办法索引这个集合,以便将(name1, name2)
其视为重复项(name2, name1)
(因为它们都将具有相同的description
)?我不想在集合中插入这样的重复项。
PS 我正在使用MongoDB Java Driver 3.8和 MongoDB 4.0.3。
PPS 示例文档和表格索引信息添加如下:
{
"_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
和上有一个升序索引,name2
在description
. 上述文件是为 Lepirudin 插入的。我想避免为圣约翰草插入以下文件:
{
"_id" : ObjectId("5be9eaeedb9c7a2836cdd49e"),
"name1" : "St. John's Wort",
"name2" : "Lepirudin",
"description" : "The metabolism of Lepirudin can be increased when combined with St. John's Wort."
}