使用mongoose仅更新mongodb中传递的值

doinxwow  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(397)

我已经构建了一个api,使用mongoose更新mongodb中的记录,但目前的情况是,如果我只通过 4 field 价值观 JSON file 然后尝试更新所有值,除了我在json中传递的4个字段外,其他所有值都使用null值更新。因此,有人可以帮助我如何传递仅更新集合传递的值而不是集合的所有字段的动态字段和值。
传递json:

{
    "preferance_id" : "60fe9ba1766d10d65c64083c",
    "is_active": true,
    "price_blur":true,
    "affiliate_commission":27,
    "language_code": "en"
 }

更新我在节点js中传递的调用

transaction.update(PreferencesMasterName,
                    { _id: new mongoose.Types.ObjectId(preferance_id) }, {
                        subscriptin_vat : subscriptin_vat,
                        popular_normal : popular_normal,
                        popular_crawled : popular_crawled,
                        price_blur : price_blur,
                        blur_rule : blur_rule,
                        affiliate_commission : affiliate_commission,
                        red_lock : red_lock,
                        automatic_dummy_price : automatic_dummy_price,
                        ...
                        is_active: is_active
                })

我想在这里传递动态字段和值,而不是这个,因为由于这个原因,将设置其他值 null 价值那么,有人知道怎么做吗?

ds97pgxw

ds97pgxw1#

您可以这样做:

const data = res.body; // should be an object that needs to updated

 transaction.update({_id: PreferanceMasterName._id}, data, {new: true }, ( error, obj ) => {
            if( error ) {
                console.error( JSON.stringify( error ) );
            }
            console.log( obj );
        });

在某些情况下 new 不起作用,您可以使用: { returnOriginal: false } ; 有关更多详细信息,您可以检查此线程。有多种方法可以执行此操作。
请检查更新如何使用它。

相关问题