Sequelize ajouter, supprimer, modifier et vérifier

site officiel

1 augmentationcreate

1.1 build+save

const xiaoxu = User.build({
    
     name: "小徐" });
console.log(xiaoxu instanceof User); // true
console.log(xiaoxu.name); // "小徐"

// build 方法仅创建一个对象,该对象表示可以映射到数据库的数据,并没有与数据库通信
await xiaoxu.save();// 使用 save 方法,将这个实例真正保存到数据库中。

1.2create

createméthode, qui combine la construction et la sauvegarde ci-dessus en une seule méthode.

const res = await User.create({
    
     name: "小徐" });

1.3bulkCreate

bulkCreateCréation par lots, le paramètre reçu est un objet tableau.

const captains = await Captain.bulkCreate(
    [
      {
    
     name: '小徐' },
      {
    
     name: '小明' }
	]
);
console.log(captains.length); // 2
console.log(captains[0] instanceof Captain); // true
console.log(captains[0].name); // '小徐'
console.log(captains[0].id); // 1 // (或另一个自动生成的值)

Par défaut, bulkCreateaucune validation ne sera effectuée sur chaque objet à créer, alors que cela createpeut être fait.
Pour exécuter bulkCreateégalement ces validations, validata: truele paramètre doit être passé, mais cela réduit les performances.

const Foo = sequelize.define('foo', {
    
    
  bar: {
    
    
    type: DataTypes.TEXT,
    validate: {
    
    
      len: [4, 6]
    }
  }
});

// 这不会引发错误,两个实例都将被创建
await Foo.bulkCreate([
  {
    
     name: 'abc123' },
  {
    
     name: 'name too long' }
]);

// 这将引发错误,不会创建任何内容,因为加上了 validdata: true,即会每一条都进行验证
await Foo.bulkCreate([
  {
    
     name: 'abc123' },
  {
    
     name: 'name too long' }
], {
    
     validate: true });

2 supprimerdestory

await User.destory({
    
     where:{
    
     id: 1002 } });

truncate: truedétruire tout le contenu

await User.destory({
    
     truncate: true });

3 changementupdate

await User.update({
    
     age: 19}, {
    
     where:{
    
     id: 1002 } });

4 recherche de chèques

4.1findAll

interroger tout

// 查询所有用户
const users = await User.findAll()
const users = await User.findAll({
    
     where: {
    
     id: 2 } })

// attributes 返回指定属性 
const users = await User.findAll({
    
    
      attributes: ['name', 'age']
})

// attributes + exclude 排除某些属性
const users = await User.findAll({
    
    
      attributes: {
    
     exclude: ['age'] }
})

// 使用嵌套数组进行重命名属性
const users = await User.findAll({
    
    
      attributes: ['name', ['age','age2']]
})
select * from User
select * from User where id = 2
select name, age from User/* 返回指定字段 */
select name, age as age2 from User/* as 重命名属性 */

4.2findByPk

findByPkpour obtenir exactement une entrée de la table à l'aide de la clé primaire fournie.

const res = await User.findByPk(123);

if (res === null) {
    
    
  console.log('Not found!');
} else {
    
    
  console.log(res instanceof User); // true 它的主键是 123
}

4.3findOne

findOneLa méthode obtient la première entrée qu'elle trouve (qui peut satisfaire les paramètres de requête facultatifs fournis).

const res = await User.findOne({
    
     where: {
    
     id: '123' } });

if (res === null) {
    
    
  console.log('Not found!');
} else {
    
    
  console.log(res instanceof User); // true
  console.log(res.id); // '123'
}

4.4findOrCreate

Créer si introuvable. La valeur de retour est une instance (trouvé ou créé) et un booléen, vrai pour créé.

const [user, created] = await User.findOrCreate({
    
    
  where: {
    
     username: '小徐' },
  defaults: {
    
    
    job: 'Technical Lead JavaScript'
  }
});

console.log(user.username); // '小徐'
console.log(user.job); // 这可能是也可能不是 'Technical Lead JavaScript'
console.log(created); // 指示此实例是否刚刚创建的布尔值

if (created) {
    
     // created === true 即是创建
  console.log(user.job); // 这里肯定是 'Technical Lead JavaScript'
}

4.5findAndCountAll

Souvent utilisée pour gérer les requêtes liées à la pagination, cette méthode est findAllune countméthode pratique qui combine et .

(1) Lorsqu'elle n'est pas groupfournie , findAndCountAllla méthode renvoie un objet avec deux propriétés :

  • count: un entier (nombre total d'enregistrements correspondant à la requête)
  • rows: un objet tableau (enregistrements obtenus)

(2) groupLorsqu'elle , findAndCountAllla méthode renvoie un objet avec deux propriétés :

  • count- un objet tableau (contient les propriétés totales et prédéfinies dans chaque groupe)
  • rows- un objet tableau (enregistrements obtenus)
const {
    
     count, rows } = await User.findAndCountAll({
    
    
  where: {
    
    
    title: {
    
    
      [Op.like]: 'foo%'
    }
  },
  offset: 10,
  limit: 2
});
console.log(count);
console.log(rows);

Je suppose que tu aimes

Origine blog.csdn.net/qq_53931766/article/details/125368947
conseillé
Classement