package Ġcom . mongodb . mong osh Ċ Ċ import Ġcom . mongodb . client . Mongo Client Ċ import Ġcom . mongodb . mong osh . result . Array Result Ċ import Ġcom . mongodb . mong osh . result . Mongo Shell Result Ċ import Ġorg . intellij . lang . annotations . Language Ċ Ċ class ĠMongo Shell ( client : ĠMongo Client ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcontext Ġ= ĠMongo Shell Context ( client ) ĊĊĠĠĠ Ġfun Ġeval (@ Language (" js ") Ġscript : ĠString ): ĠMongo Shell Result < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprinted Values Ġ= Ġmutable ListOf < List < Any ? >>() ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontext . with Console Log Enabled ( print ed Values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . unwrap Promise ( context . eval ( script , Ġ" user _ script ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( print ed Values . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ[{" 0 ": Ġ< value >, Ġ" 1 ": Ġ< value >, Ġ... }, Ġ{" 0 ": Ġ< value > }, Ġ...] ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArray Result ( print ed Values . map Ġ{ Ġargs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġidx Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . associate By Ġ{ Ġ( idx ++ ). toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġresult . get Member (" raw Value ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . extract ( null , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose () Ġ= Ġcontext . close () Ċ } Ċ