Estamos tratando de migrar la versión 4.4 de Mongo a la versión 3.6 - 4 de Document DB. Al verificar la compatibilidad, vimos que el operador '$ expr' no es compatible. ¿Hay alguna alternativa a esto en AWS Documentdb?
Dos declaraciones de muestra:
RARELD.quoteLineItems.find({'$expr': {'$ne': ['$opportunityID', '$opportunityID']}}, {}) // ['$expr'] RARE2D.rareQuotes.aggregate([{'$match': {'lob': 'Medical', 'errors.errorList': {'$exists': True}, '$expr': {'$gte': [{'$size': '$errors.errorList'}, 3]}}}, {'$skip': 0}, {'$group': {'_id': 1, 'n': {'$sum': 1}}}]) // ['$expr']No hay alternativa a $expr ya que este es el único operador que le permite usar operadores de agregación dentro del lenguaje de consulta, específicamente cuando se trata de consultas simples (también conocidas como find ).
Cuando está utilizando una agregación, siempre puede encontrar una solución alternativa, solo que podría ser menos eficiente.
Específicamente con su ejemplo de agregación, simplemente puede escribir
'$expr': {'$gte': [{'$size': '$errors.errorList'}, 3]}}como
"errors.errorList.2": {"$exists": True}