关于typeorm如何精确更新对象的点

展现出js的语言特性远远超过微软EF的框架的DEMO


TypeORM 中文文档

1、使用 Query Builder 更新

你可以使用QueryBuilder创建UPDATE查询。 例如:

import { getConnection } from "typeorm";

await getConnection()
.createQueryBuilder()
.update(User)
.set({ firstName: "Timber", lastName: "Saw" })
.where("id = :id", { id: 1 })
.execute();

2、lodash登场

_.omit(object, [props])

反向版_.pick; 这个方法一个对象,这个对象由忽略属性之外的object自身和继承的可枚举属性组成。(注:可以理解为删除object对象的属性)。

添加版本

0.1.0

参数

  1. object (Object): 来源对象。
  2. [props] (...(string|string[])): 要被忽略的属性。(注:单独指定或指定在数组中。)

返回

(Object): 返回新对象。

例子

var object = { 'a': 1, 'b': '2', 'c': 3 };

_.omit(object, ['a', 'c']);
// => { 'b': '2' }



_.omitBy(object, [predicate=_.identity])

反向版_.pickBy;这个方法一个对象,这个对象忽略 predicate(断言函数)判断不是真值的属性后,object自身和继承的可枚举属性组成。predicate调用与2个参数:(value, key)

添加版本

4.0.0

参数

  1. object (Object): 来源对象。
  2. [predicate=_.identity] (Function): 调用每一个属性的函数。

返回

(Object): 返回新对象。

例子

var object = { 'a': 1, 'b': '2', 'c': 3 };

_.omitBy(object, _.isNumber);
// => { 'b': '2' }




const _ = require('lodash');
const myObject = {
  name: 'John',
  age: null,
  address: {
    city: 'New York',
    zipCode: undefined,
  },
  hobbies: [],
};
const result = _.omitBy(myObject, (value) => value === null || value === undefined || (_.isObject(value) && _.isEmpty(value)));
console.log(result);
// Output: { name: 'John', address: { city: 'New York' } }

  



posted on 2023-11-18 13:55  漫思  阅读(95)  评论(0编辑  收藏  举报

导航