Source code for langchain_community.query_constructors.mongodb_atlas
"""Logic for converting internal query language to a valid MongoDB Atlas query."""fromtypingimportDict,Tuple,Unionfromlangchain_core.structured_queryimport(Comparator,Comparison,Operation,Operator,StructuredQuery,Visitor,)MULTIPLE_ARITY_COMPARATORS=[Comparator.IN,Comparator.NIN]
[docs]classMongoDBAtlasTranslator(Visitor):"""Translate Mongo internal query language elements to valid filters.""""""Subset of allowed logical comparators."""allowed_comparators=[Comparator.EQ,Comparator.NE,Comparator.GT,Comparator.GTE,Comparator.LT,Comparator.LTE,Comparator.IN,Comparator.NIN,]"""Subset of allowed logical operators."""allowed_operators=[Operator.AND,Operator.OR]## Convert a operator or a comparator to Mongo Query Formatdef_format_func(self,func:Union[Operator,Comparator])->str:self._validate_func(func)map_dict={Operator.AND:"$and",Operator.OR:"$or",Comparator.EQ:"$eq",Comparator.NE:"$ne",Comparator.GTE:"$gte",Comparator.LTE:"$lte",Comparator.LT:"$lt",Comparator.GT:"$gt",Comparator.IN:"$in",Comparator.NIN:"$nin",}returnmap_dict[func]