AWS DocumentDB不支持MongoDB的$expr运算符,但可以通过其他方式实现相同的结果。其中一种替代方法是使用$and运算符和$gt或$lt等比较运算符。例如,以下查询使用了$and和$gt运算符,它们可以替代$expr运算符:
db.collection.find({
$and: [
{ price: { $gt: 10 } },
{ $expr: { $gt: ["$price", "$cost"] } }
]
})
可以改写成:
db.collection.find({
$and: [
{ price: { $gt: 10 } },
{ price: { $gt: "$cost" } }
]
})
在这个例子中,使用$gt运算符比较了price和cost字段的值。将"$cost"用作字符串而不是字段名,因为$gt运算符只能用于比较值,不能用于比较字段名。这种替代方法可以实现与$expr运算符相同的效果。