Фон
Я использую базу данных 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
)? Я не хотел бы вставлять такие дубликаты в коллекцию.
P.S. Я использую драйвер MongoDB Java 3.8 с MongoDB 4.0.3.
P.P.S Пример документа и информация об индексе таблицы добавлены ниже:
{
"_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
. Вышеуказанный документ вставлен для лепирудина. Я хотел бы не вставлять следующий документ для зверобоя:
{
"_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."
}