В Java у меня есть List<Document>
, где Document - документ bson.Этот список заполняется из mongoDB.
Класс документа - это не что иное, как LinkedHashMap<String, Object>
В нашем случае мы храним документы json (из Mongo) в этом классе документа.
Пример : Документ является представлением пары ключ-значение следующего json.Обратите внимание, что структура json и вложенных уровней может варьироваться для каждого документа.
{
"assetType" : "EQUITY",
"cusip" : "g5asds6",
"symbol" : "BqrF",
"pricing" : {
"eodAskPrice" : 4.168816,
"eodBidPrice" : 4.164947,
"eodPriceCurrency" : "USD",
"eodPriceCurrencyDesc" : "US Dollar",
"prevEodAskPrice" : 4.079388,
"prevEodBidPrice" : 4.058687,
},
"reference" : {
"adrSponsored" : false,
"countryIncorp" : "LU",
"countryIncorpDesc" : "LUXEMBOURG",
"dtc" : {
"bookEntryDrsFlag" : false,
"bookEntryDrsFlagDesc" : "Ineligible",
"specialDepReasonType" : "REG",
"specialDepReasonTypeDesc" : "Regular"
},
"estimatedAnnualDividend" : 0.0,
"exchangeCode" : "%",
"exchangeCodeDesc" : "Other-OTC",
}
}
У меня вопрос , как мне написать какой-то пользовательский компаратор, так что сортируйте мой списокна основе полей, указанных пользователем?
Обратите внимание, что Я не могу создать методы получения для этих полей.
Один пользователь может указать сортировку по ["символу", "exchangeCode"] и другие могут указывать ["cusip", reference.countryIncorp "," countryIncorpDesc "] *
Также обратите внимание, что я не могу выполнить эту сортировку в Mongo. Так как данные доступны в памяти,Я должен отсортировать это в памяти.
Любая помощь очень ценится!