Pongo 使用教程

Pongo 使用教程

Pongo Pongo - Mongo but on Postgres and with strong consistency benefits Pongo 项目地址: https://gitcode.com/gh_mirrors/pon/Pongo

1. 项目介绍

Pongo 是由 event-driven.io 开发的一个开源项目,它将 PostgreSQL 数据库模拟为一个文档数据库,支持 JSONB 类型,从而提供了类似于 MongoDB 的使用体验。Pongo 允许开发者利用 PostgreSQL 的 ACID-compliant 特性,同时保持 MongoDB 的易用性和熟悉的 API。这使得从 MongoDB 迁移到 PostgreSQL 变得更加容易,同时也享受 PostgreSQL 的高级特性,如分区、逻辑复制等。

2. 项目快速启动

首先,您需要将 Pongo 作为 npm 模块安装到您的项目中:

npm install @event-driven-io/pongo

以下是一个快速启动的例子:

import { pongoClient, ObjectId } from "@event-driven-io/pongo";

interface User {
  name: string;
  age: number;
}

const connectionString = "postgresql://dbuser:secretpassword@database.server.com:3211/mydb";
const pongo = pongoClient(connectionString);
const pongoDb = pongo.db();
const users = pongoDb.collection<User>("users");

const roger = { name: "Roger", age: 30 };
const anita = { name: "Anita", age: 25 };

// 插入数据
await users.insertOne(roger);
await users.insertOne(anita);

const { insertedId } = await users.insertOne({ name: "Cruella", age: 40 });
const anitaId = insertedId;

// 更新数据
await users.updateOne({ _id: anitaId }, { $set: { age: 31 } });

// 删除数据
await users.deleteOne({ _id: roger._id });

// 根据 Id 查找数据
const anitaFromDb = await users.findOne({ _id: anitaId });

// 查找符合条件的数据
const usersFromDb = await users.find({ age: { $lt: 40 } }).toArray();

确保在运行上述代码之前,您已经在 PostgreSQL 数据库中创建了相应的表,并且已经设置了正确的连接字符串。

3. 应用案例和最佳实践

Pongo 的使用场景包括但不限于:

  • 需要强一致性的场景,比如金融或医疗健康应用。
  • 需要利用 PostgreSQL 高级特性的项目,如分区和逻辑复制。
  • 从 MongoDB 迁移到 PostgreSQL 的项目,以利用 PostgreSQL 的 ACID 特性和性能优势。

最佳实践包括:

  • 确保您的 JSONB 数据模型能够充分利用 PostgreSQL 的查询优化。
  • 使用合适的索引来提高查询性能。
  • 遵循 PostgreSQL 的最佳实践来管理和维护您的数据库。

4. 典型生态项目

Pongo 可以与以下生态项目无缝集成:

  • Supabase:一个开源的无服务器数据库,为开发提供快速的 API。
  • Vercel Postgres:%s2 是一个由 Vercel 提供的 PostgreSQL 服务。
  • YugabyteDB:一个为企业级应用设计的开源、高性能、分布式数据库系统。
  • CockroachDB:一个可扩展的、分布式的、SQL 数据库,旨在在任何地方运行。

以上是关于 Pongo 的基本教程,希望对您的项目开发有所帮助。

Pongo Pongo - Mongo but on Postgres and with strong consistency benefits Pongo 项目地址: https://gitcode.com/gh_mirrors/pon/Pongo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅亭策Serena

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值