# 增删改查

# 创建

# 创建单条数据 create

使用 create() 方法创建新文章:

const { data } = await models.post.create({
  data: {
    body: "你好,世界👋\n\nfrom china",
    title: "你好,世界👋",
    slug: "hello-world-cn",
  },
});

// 返回创建的文章 id
console.log(data);
// { id: "7d8ff72c665eb6c30243b6313aa8539e"}

# 创建多条数据 createMany

使用 createMany() 方法创建新文章:

const { data } = await models.post.createMany({
  data: [
    {
      title: "Hello World👋",
    },
    {
      title: "Hola Mundo 👋",
    },
    {
      title: "你好,世界👋",
    },
    {
      title: "Bonjour le Monde👋",
    },
  ],
});

// 返回创建的文章 idList
console.log(data);
// {
//   "idList": [
//       "7d8ff72c665ebe5c02442a1a7b29685e",
//       "7d8ff72c665ebe5c02442a1b77feba4b",
//       "7d8ff72c665ebe5c02442a1c48263dc6",
//       "7d8ff72c665ebe5c02442a1d53c311b0"
//   ]
// }

# 更新

# 更新单条数据 update

使用 update() 方法更新文章内容:

const { data } = await models.post.update({
  data: {
    title: "Hello World",
    body: "Hello World",
  },
  filter: {
    where: {
      _id: {
        $eq: "xxxx", // 推荐传入_id数据标识进行操作
      },
    },
  },
});

// 返回更新成功的条数
console.log(data);
// { count: 1}

# 创建或更新数据 upsert

使用 upsert() 方法创建或更新文章内容:

const post = {
  title: "Hello World",
  body: "Hello World",
  _id: "foo",
};
const { data } = await models.post.upsert({
  create: post,
  update: post,
  filter: {
    where: {
      _id: {
        $eq: post._id,
      },
    },
  },
});
console.log(data);
// 新增时返回
//   {
//     "count": 0,
//     "id": "foo"
// }

// 更新时返回
//   {
//     "count": 1,
//     "id": ""
// }

# 更新多条数据 updateMany

例如筛选内容不为空的数据,使用 updateMany() 方法更新文章内容和别名:

const { data } = await models.post.updateMany({
  data: {
    slug: "hello-world",
    body: `
        "你好世界"可以翻译成以下几种语言:
        
        英语:Hello World 西班牙语:Hola Mundo 法语:Bonjour le Monde 德语:Hallo Welt 意大利语:Ciao Mondo 葡萄牙语:Olá Mundo 荷兰语:Hallo Wereld 日语:こんにちは、世界 (Konnichiwa, Sekai) 韩语:안녕하세요, 세계 (Annyeonghaseyo, Segye)`,
  },
  filter: {
    where: {
      title: {
        $nempty: 1, // 不为空的数据
      },
    },
  },
});

// 返回更新成功的条数
console.log(data);
// {
//   "count": 33
// }

# 删除

# 删除单条 delete

使用 delete() 方法删除指定 _id 的文章:

const { data } = await models.post.delete({
  filter: {
    where: {
      _id: {
        $eq: "xxx", // 推荐传入_id数据标识进行操作
      },
    },
  },
});

// 返回删除成功的条数
console.log(data);
// {
//   "count": 1
// }

# 删除多条 deleteMany

例如,使用 deleteMany() 方法删除标题为 'Hello World👋' 的文章:

const { data } = await models.post.deleteMany({
  filter: {
    where: {
      title: {
        $eq: "Hello World👋",
      },
    },
  },
});

console.log(data);
// 返回删除成功的条数
// {
//   "count": 7
// }

# 读取

# 读取单条数据 get

使用 get() 方法获取特定文章:

const { data } = await models.post.get({
  filter: {
    where: {
      _id: {
        $eq: _id, // 推荐传入_id数据标识进行操作
      },
    },
  },
});

// 返回查询到的数据
console.log(data);
// {
//     "owner": "Anonymous(95fblM7nvPi01yQmYxBvBg)",
//     "createdAt": 1717488585078,
//     "createBy": "Anonymous(95fblM7nvPi01yQmYxBvBg)",
//     "updateBy": "Anonymous(95fblM7nvPi01yQmYxBvBg)",
//     "_openid": "95fblM7nvPi01yQmYxBvBg",
//     "_id": "e2764d2d665ecbc9024b058f1d6b33a4",
//     "title": "你好,世界👋",
//     "body": "\"你好世界\"可以翻译成以下几种语言:\n\n英语:Hello World\n西班牙语:Hola Mundo\n法语:Bonjour le Monde\n德语:Hallo Welt\n意大利语:Ciao Mondo\n葡萄牙语:Olá Mundo\n荷兰语:Hallo Wereld\n日语:こんにちは、世界 (Konnichiwa, Sekai)\n韩语:안녕하세요, 세계 (Annyeonghaseyo, Segye)",
//     "slug": "hello-world",
//     "updatedAt": 1717490751944
// }

# 读取多条数据 list

使用 list() 方法获取所有文章,返回查询到的数据列表 records 和 总数 total

const { data } = await models.post.list({
  filter: {
    where: {},
  },
  getCount: true, // 开启用来获取总数
});

// 返回查询到的数据列表 `records` 和 总数 `total`
console.log(data);
// {
//     "records": [
//         {
//             "owner": "Anonymous(95fblM7nvPi01yQmYxBvBg)",
//             "createdAt": 1717488585078,
//             "createBy": "Anonymous(95fblM7nvPi01yQmYxBvBg)",
//             "updateBy": "Anonymous(95fblM7nvPi01yQmYxBvBg)",
//             "_openid": "95fblM7nvPi01yQmYxBvBg",
//             "_id": "e2764d2d665ecbc9024b058f1d6b33a4",
//             "title": "你好,世界👋",
//             "body": "\"你好世界\"可以翻译成以下几种语言:\n\n英语:Hello World\n西班牙语:Hola Mundo\n法语:Bonjour le Monde\n德语:Hallo Welt\n意大利语:Ciao Mondo\n葡萄牙语:Olá Mundo\n荷兰语:Hallo Wereld\n日语:こんにちは、世界 (Konnichiwa, Sekai)\n韩语:안녕하세요, 세계 (Annyeonghaseyo, Segye)",
//             "slug": "hello-world",
//             "updatedAt": 1717490751944
//         },
//         {
//          ...
//         },
//     ],
//     "total": 51
// }