【Node.js】Sequelize 操作 MySQL 数据库(数据查询)

news2024/9/9 0:51:55

1. findOne

findOne 方法用于根据条件查找单个记录。如果没有找到符合条件的记录,它将返回 null

User.findOne({
  where: {
    email: 'user@example.com'
  }
}).then(user => {
  if (user) {
    console.log('User found:', user);
  } else {
    console.log('No user found');
  }
});

2. findByPk

findByPk(Find By Primary Key)方法用于通过主键查找单个记录。你需要提供主键的值。

User.findByPk(1).then(user => {
  if (user) {
    console.log('User found:', user);
  } else {
    console.log('No user found');
  }
});

3. findAll

findAll 方法用于查找多个记录。你可以使用 where 来指定查询条件,order 来排序结果,limitoffset 来分页。

const { Op } = require('sequelize');

User.findAll({
  where: {
    name: {
      [Op.like]: '%John%' // 使用 Sequelize 的 Op 对象进行模糊查询
    }
  },
  order: [
    ['name', 'ASC'] // 按名字升序排序
  ],
  limit: 10, // 限制结果数量
  offset: 0 // 从第0条记录开始
}).then(users => {
  console.log('Users found:', users);
});

这里多提一嘴,Op 是一个提供操作符别名的对象。它允许你在查询条件中使用字符串形式的操作符,使得代码更易读和编写。Op 对象包含了一系列常用的操作符,比如 eq(等于)、ne(不等于)、gt(大于)、lt(小于)、like(模糊匹配)等。

分页查询:

User.finaAll({
    offset: (page - 1) * limit,
    limit: +limit,
})

4. count

count 方法用于获取满足特定条件的记录总数。

User.count({
  where: {
    isActive: true
  }
}).then(count => {
  console.log('Active users count:', count);
});

findAndCountAll 一边查分页数据,一边查总数。

User.findAndCountAll({
    where: {
        title: {
            [Op.like]: 'foo%'
        }
    },
    offset: 10,
    limit: 2
})

5. include

include 方法用于实现关联查询,例如当你需要同时获取用户及其关联的帖子时。

首先,定义模型之间的关联:

User.hasMany(Post); // 用户有多个帖子
Post.belongsTo(User); // 帖子属于一个用户

然后,使用 include 在查询中包含关联的数据:

User.findAll({
  include: [{
    model: Post,
    as: 'posts', // 指定别名,用于区分不同的关联
    where: {
      title: {
        [Op.like]: '%Important%' // 只查询标题包含 'Important' 的帖子
      }
    }
  }],
  where: {
    name: 'John Doe'
  }
}).then(users => {
  console.log('Users with posts:', users);
});

在这个示例中,我们查询了名字为 “John Doe” 的用户,并且包括了他们拥有的标题包含 “Important” 的帖子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爱快路由的dns强制客户端代理真是个强大的功能

大致情况是这样的:同事说在linux服务器/etc/resolv.conf上随便写个IP地址【不在线的】,dns地址也能解析,让我帮忙查查。 我看了下也感觉纳闷,试了下不光在服务器上,我本地的pc随便设置了个dns解析也是一样的。 通过wir…

【黄啊码】零代码动手创建ModelScope Agent

还没开始学习,先来回复一下,什么是Agent Agent包含的模块 好了,开始发放干货: 1、创建通义千问API (新注册用户有一定的限时免费额度) 2、登录阿里云账号,打开 DashScope管理控制台,开通 DashScope灵积模…

C#网络连接:TCP/IP模式下的网络连接与同步

1&#xff0c;目的 为了测试局域网的消息同步&#xff0c;简单写了下TCP/IP模式的同步&#xff0c;参考这个帖子。 2&#xff0c;核心库部分 using System; using System.Net; using System.Net.Sockets; using System.Text;namespace Coldairarrow.Util.Sockets {/// <s…

【React】useEffect 钩子详解

文章目录 一、useEffect 概念二、useEffect 的基本用法1. 无依赖项2. 空依赖项数组3. 带依赖项的 useEffect 三、useEffect 的常见应用场景1. 数据获取2. 订阅与清除3. 动画与定时器 四、useEffect 的进阶用法1. 多个 useEffect2. 条件执行副作用 五、注意事项 useEffect 是 Re…

playbooks 分布式部署 LNMP

1、环境配置 ansible 服务器 192.168.10.10nginx 服务器 192.168.10.20mysql 服务器 192.168.10.21php 服务器 192.168.10.22 2、安装 ansble #192.168.10.10节点 yum install -y epel-release #先安装 epel 源 yum install -y ansible配置主机清单 …

Vue 动态改变css文件

theme: smartblue 一、背景需求 现有 Vue3 项目&#xff0c;要求点击按钮后&#xff0c;会动态加载css文件内容 二、实现过程 2.1 相关代码 假设有 blue.css 和 red.css,要求点击加载对应文件 若想切换为原版样式&#xff0c;点击 back 回退到初始样式 this is a simple text …

76.SAP ME - 归档

目录 1.归档 2.系统设置维护 3.后台处理执行 1.归档 可使用此功能将某一特定已完成产品的相关记录从活动的“在制品”(WIP) 数据库移动到归档数据库&#xff0c;这样可改进生产记录的检索。在一段时间内&#xff0c;WIP 数据库中的记录数量将增加。当系统在大量记录中进行搜…

c++ 内存管理(newdeletedelete[])

因为在c里面新增了类&#xff0c;所以我们在有时候会用malloc来创建类&#xff0c;但是这种创建只是单纯的开辟空间&#xff0c;没有什么默认构造的。同时free也是free的表面&#xff0c;如果类里面带有指针指向堆区的成员变量就会free不干净。 所以我们c增加了new delete和de…

pdf太大怎么压缩大小?这几种压缩方法操作起来很简单!

pdf太大怎么压缩大小&#xff1f;在数字化洪流席卷的当下&#xff0c;PDF文件的“臃肿”难题如同巨石般横亘于高效办公之路&#xff0c;它们不仅贪婪地吞噬着宝贵的存储空间&#xff0c;更如沉重的枷锁&#xff0c;拖曳着我们的工作进度&#xff0c;步入迟缓之境&#xff0c;试…

06 内置的整数、实数与复数

在 Python 中&#xff0c;内置的数字类型有整数、实数和复数&#xff0c;借助于标准库 fractions 中的 Fraction 对象可以实现分数及其运算&#xff0c;而 fractions 中的 Decimal 类则实现了更高精度的运算。 Python 支持任意大的数字&#xff0c;具体可以大到什么程度仅受内…

电阻液冷 可提升 3.3kV 中压负载-EAK水冷电阻器

电阻液冷 可提升 3.3kV 中压负载-EAK水冷电阻器 在工业和海洋应用中&#xff0c;水冷在削减电阻器封装方面至关重要的地方 在起重机、升降机、升降机和输送机等电机驱动应用中&#xff0c;风冷电阻器很常见&#xff0c;但在中压、高功率应用中&#xff0c;液体冷却胜出。 使…

IDEA项目的依赖(pom.xml文件)导入问题及解决

前言&#xff1a;该文章为转载&#xff0c;没有仔细的看 IDEA新建项目和pom.xml文件被修改时&#xff0c;右下角都会出现 Maven projects need to be imported&#xff08;项目需要导入依赖&#xff09; 如下&#xff0c;点击 Import Changes导入后&#xff0c;有时会一直处于…

【基础篇】Docker 概览 ONE

嗨&#xff0c;大家好&#xff01;我是小竹笋&#xff0c;一名热爱创作的工程师。今天我将带领大家一起踏上探索 Docker 的奇妙之旅。我们先从 Docker 的历史和发展说起&#xff0c;然后再看看 Docker 和虚拟机之间的区别&#xff0c;最后了解一下 Docker 在各行各业的应用情况…

数据结构算法经典题目刨析(c语言)返回单链表的倒数第 k 个节点

&#x1f493; 博客主页&#xff1a;C-SDN花园GGbond ⏩ 文章专栏&#xff1a;数据结构经典题目刨析(c语言) 一.题目描述 二.解题思路 方法一:计数器方式 先遍历链表&#xff0c;求出链表长度count倒数第k个节点&#xff0c;就是正数第count-k1个节点&#xff08;下标为count…

《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-02-表现层框架设计

文章目录 1. 表现层设计模式1.1 MVC模式1.1.1 三个核心模块1&#xff09;控制器 (Controller)2&#xff09;模型 (Model)3&#xff09;视图 (View): 1.1.2 过程1.1.3 优点1.1.4 应用 1.2 MVP模式1.3 MVVM模式 2. 使用XML设计表现层统一Web Form与 Windows Form的外观3. 表现层中…

⚠️ Buffer Overflow: 安全编码必备知识 ️

⚠️ Buffer Overflow: 安全编码必备知识 &#x1f6e1;️ ⚠️ Buffer Overflow: 安全编码必备知识 &#x1f6e1;️摘要引言正文内容一、缓冲区溢出基本概念 &#x1f9e9;二、常见场景及实际案例 &#x1f6e0;️2.1 利用不安全的函数2.2 堆溢出攻击 三、调试技巧 &#x1f…

算法入门:Java实现排序、查找算法

链接&#xff1a;算法入门&#xff1a;Java实现排序、查找算法 (qq.com) 冒泡/选择/插入/希尔排序代码 (qq.com) 快排/归并/堆排/基数排序代码 (qq.com)

Python酷库之旅-第三方库Pandas(053)

目录 一、用法精讲 196、pandas.Series.first方法 196-1、语法 196-2、参数 196-3、功能 196-4、返回值 196-5、说明 196-6、用法 196-6-1、数据准备 196-6-2、代码示例 196-6-3、结果输出 197、pandas.Series.head方法 197-1、语法 197-2、参数 197-3、功能 1…

【C++题解】1069. 字符图形5-星号梯形

问题&#xff1a;1069. 字符图形5-星号梯形 类型&#xff1a;嵌套循环、图形输出 题目描述&#xff1a; 打印字符图形。 输入&#xff1a; 一个整数&#xff08; 0<n<10 &#xff09;。 输出&#xff1a; 一个字符图形。 样例&#xff1a; 输入&#xff1a; 3输…