We are trying to migrate Mongo 4.4 version to Document DB 3.6 - 4 version. While checking for compaitability we saw '$expr' operator not supported. Is there any alternative to this in AWS Documentdb?
Two sample statement :
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']
There is no alternative to
$expr
as this is the only operator that allow's you to use aggregation operators within the query language, specifically when it comes to the simple queries (akafind
).When you're using an aggregation you can always find a workaround, it just might be less efficient.
Specifically with your aggregation example you can just write
as