mongodb 中的更新操作

给出以下数据并且我正在使用带有驱动程序 3.10.1 的 java


    "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")

            }

    ],

仅当增量操作后total_paid低于overall_paid金额时,如何将新添加的价格添加到totalpaid中。注意到我已经尝试过 max() 和 inc() 但无法达到任何结果


呼唤远方
浏览 69回答 1
1回答

aluckdog

以下查询可以获得预期的输出:db.collection.update(    {        $expr:{            $lt:[                {                    $sum:["$total_paid",345]                },                "$overall_price"            ]        }    },    {        $addToSet:{            "paid":{                "price":345,                "Date": new Date()            }        },        $inc:{            "total_paid":345        }    })注意:这里的345是我们需要添加的新价格
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java