0

背景

我正在使用 MongoDB 数据库构建一个医疗应用程序,其中存储药物信息。该数据库中有一些集合,其中之一是成对药物相互作用。提供给我的数据是基于每种药物的。也就是说,如果A是与BCD相互作用的药物,我会得到(A,B)(A,C)和对(A,D)但是,在解析药物BCD(B,A)等形式的输入数据时,我再次获得了相同的信息。

当然,相应的医学信息是相同的(即,AB交互产生与BA交互相同的反应)。

集合结构

该集合的结构是每个都document具有三个字段:name1name2description

在第一次创建集合并填充它时,有没有办法索引这个集合,以便将(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和上有一个升序索引,name2description. 上述文件是为 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."
}
4

0 回答 0