有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mongodb中的java更新操作

给定以下数据,并且我正在使用java驱动程序3.10.1

    "room_price" : "500",
    "overall_price" : 10000,
    "total_paid" : 400,
    "paid" : [
            {
                    "price" : "200",
                    "Date" : ISODate("2019-10-06T00:00:00Z")
            },
            {
                    "price" : "200",
                    "Date" : ISODate("2019-10-06T00:00:00Z")
            }
    ],

仅当增量操作后支付的总金额低于支付的总金额时,我如何将新添加的价格添加到支付的总金额中。注意,我尝试了max()和inc(),但没有得到任何结果


共 (1) 个答案

  1. # 1 楼答案

    以下查询可以获得预期的输出:

    db.collection.update(
        {
            $expr:{
                $lt:[
                    {
                        $sum:["$total_paid",345]
                    },
                    "$overall_price"
                ]
            }
        },
        {
            $addToSet:{
                "paid":{
                    "price":345,
                    "Date": new Date()
                }
            },
            $inc:{
                "total_paid":345
            }
        }
    )
    

    注意:这里345是我们需要添加的新价格