koa使用Sequelize操作数据库(增,删、改等)

470 阅读1分钟

1、单表的增删改

方式一:调用 build 方法后对象只存在于内存中,需要进一步调用 save 方法才会保存到数据库中。

let user = UsersModel.build({
    username: "swnd",
    password: "q11111"
});
user = await user.save();
console.log(user.get({'id': 3}));

方式二:调用 create 方法后,会直接保存到数据库中。

const user = UsersModel.create({
    username: 'zhangsan',
    password: '123456'
})
console.log(user.get({'id': 6}));

方案一

const hasUser = await UsersModel.findOne({
    where: {
	id: 6,
	username: 'zhangsan'
    }
});
hasUser.username = 'wanggangdan'
hasUser.save();

方案二

const hasUser = await UsersModel.findOne({
    where: {
	id: 6
    }
});
const updatedUser = await hasUser.update({
    username: "green"
});
hasUser.save();

方案三

const { id, name,  } = data;
    return await Tags.update(
      {
        id,
        name,
      },
      {
        where: {
          id,
        },
      }
    );

限制更新某字段

方案一

const hasUser = await UsersModel.findOne({
    where: {
	id: 6
    }
});
const updatedUser = await hasUser.update({
    username: "green2",
    password: '8888888888'
},{
    fields: ['username']  // 只允许更新这个
});

方案二

const hasUser = await UsersModel.findOne({
    where: {
	id: 6
    }
});
hasUser.username = 'wanggangdan'
hasUser.passwprd = '8989878888'
hasUser.save({ fields: ['username'] }); // 只允许更新这个

方法一

const hasUser = await UsersModel.findOne({
     where: {
	id: 3
     }
});
await hasUser.destroy();

方法二

await User.destroy({
   where: {
        id,
    },
});