MongoDB AddField子数组的计算和
假设我有一个简单的对象,其子数组如下:MongoDB AddField子数组的计算和,mongodb,mongodb-query,Mongodb,Mongodb Query,假设我有一个简单的对象,其子数组如下: [ { "BillingId": 1, "TotalBilling": 10, "Installments": [ { "InstallmentId": "Inst01", "TotalPaid": 2 }, { "I
[
{
"BillingId": 1,
"TotalBilling": 10,
"Installments": [
{
"InstallmentId": "Inst01",
"TotalPaid": 2
},
{
"InstallmentId": "Inst02",
"TotalPaid": 5
}
]
}
]
[
{
"BillingId": 1,
"TotalBilling": 10,
"TotalInstallments": 7,
"TotalBalanceDue": 3,
}
]
db.collection.aggregate([
{
$addFields: {
"TotalInstallments": {
$sum: "$Installments.TotalPaid"
},
"TotalBalanceDue": {
$subtract: [
"$TotalBilling",
{
$sum: "$Installments.TotalPaid"
}
]
}
}
}
])
我想运行一个聚合到$addified,它将是数组分期付款的'TotalPaid'的$sum。我会将结果添加到另一个字段中,这将是TotalBilling与TotalInstallations的美元减去。。。。会是这样的:
[
{
"BillingId": 1,
"TotalBilling": 10,
"Installments": [
{
"InstallmentId": "Inst01",
"TotalPaid": 2
},
{
"InstallmentId": "Inst02",
"TotalPaid": 5
}
]
}
]
[
{
"BillingId": 1,
"TotalBilling": 10,
"TotalInstallments": 7,
"TotalBalanceDue": 3,
}
]
db.collection.aggregate([
{
$addFields: {
"TotalInstallments": {
$sum: "$Installments.TotalPaid"
},
"TotalBalanceDue": {
$subtract: [
"$TotalBilling",
{
$sum: "$Installments.TotalPaid"
}
]
}
}
}
])
我想知道我是否会使用Map并推送分期付款或减少或组的值
您可以使用如下聚合:
[
{
"BillingId": 1,
"TotalBilling": 10,
"Installments": [
{
"InstallmentId": "Inst01",
"TotalPaid": 2
},
{
"InstallmentId": "Inst02",
"TotalPaid": 5
}
]
}
]
[
{
"BillingId": 1,
"TotalBilling": 10,
"TotalInstallments": 7,
"TotalBalanceDue": 3,
}
]
db.collection.aggregate([
{
$addFields: {
"TotalInstallments": {
$sum: "$Installments.TotalPaid"
},
"TotalBalanceDue": {
$subtract: [
"$TotalBilling",
{
$sum: "$Installments.TotalPaid"
}
]
}
}
}
])
如果分期付款为NULL或空,如何默认为0(零)?,并将默认为0。另一个问题。。。当分期付款总额为字符串而不是十进制时。。。直接求和是行不通的。。。是否应该应用映射和用户$toDecimal,然后是$sum?刚刚添加了另一个名为Installments2的道具,并对分期付款进行映射。Total和Just$toDecimal。很好!谢谢