我必须将这个mongodb聚合代码转换为spring聚合代码
{ $addFields: {
"versions" : { $filter: {
input: "$versions",
as: "version",
cond: {$in: ["$$version.parentId", "$libraries._id"]}
}}
}}
我当前的代码是
AddFieldsOperation.with("versions",
ArrayOperators.arrayOf("versions").filter().as("version").by(
ArrayOperators.In.arrayOf("version.parentId").containsValue(
ArrayOperators.arrayOf("libraries._id")
)
)
)
但是这会抛出这个错误:
$in需要数组作为第二个参数,found: objectId‘
我猜是因为它不接受这个论点
ArrayOperators.arrayOf("libraries._id")
发布于 2020-04-22 16:54:38
我有这样的疑问
{
coupons: {
$filter: {
input: "$coupons",
as: "coupon",
cond: {
$in: [ "$$coupon._id", ["ABC", "DEF"] ]
}
}
}
}
下面的解决方案对我很有效
filter("$coupons").as("coupon").by(ArrayOperators.In.arrayOf(couponIds).containsValue("$$coupon._id"))
注意: couponIds是带有值"ABC","DEF“的列表。
https://stackoverflow.com/questions/56241082
复制相似问题