如何解决使用 mongoose 仅更新 mongodb 中传递的值
我已经构建了一个 API,可以使用 mongoose 更新 MongoDB 中的记录,但目前发生的情况是,如果我只在 postman 的 4 field
中传递 JSON file
值并尝试更新,那么所有值都是使用值 null 更新,除了我在 JSON 中传递的 4 个字段,所以任何人都可以帮助我如何传递动态字段和值,这些字段和值仅更新传递的集合值而不是集合的所有字段。
传递 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
值。那么,任何人都可以知道如何做到这一点吗?
解决方法
你可以这样做:
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 }
;
有关更多详细信息,您可以查看 this 线程,您可以通过多种方式执行此操作。
请检查update如何使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。