📜  如果存在 mongodb 创建或更新 (1)

📅  最后修改于: 2023-12-03 14:53:22.817000             🧑  作者: Mango

创建或更新 MongoDB 数据记录

如果你正在使用 MongoDB 作为你的应用程序的数据库,有时你需要检查一个文档是否已经存在,如果存在则更新该文档,否则创建一个新文档。

下面给出了一个基本的例子:

const MongoClient = require('mongodb').MongoClient;

const url = 'mongodb://localhost:27017/myproject';
const client = new MongoClient(url);

async function createOrUpdateDocument(collectionName, query, update) {
    try {
        await client.connect();
        
        const db = client.db();
        const collection = db.collection(collectionName);
        
        const existingDocument = await collection.findOne(query);
        if (existingDocument) {
            await collection.updateOne(query, update);
        } else {
            await collection.insertOne(update);
        }
    } finally {
        await client.close();
    }
}

这个函数接受三个参数:

  • collectionName:集合的名称。
  • query:一个查询文档,用于查找现有文档。
  • update:一个更新文档,用于更新或创建文档。

在这个例子中,我们使用 MongoDB Node.js 驱动程序来连接到 MongoDB 数据库,并将查询和更新发送到指定的集合中。

如果存在符合查询条件的文档,我们将使用 updateOne 函数来更新该文档。否则,我们将使用 insertOne 函数来创建一个新文档。

请注意,我们使用 async/await 来确保在 MongoDB 操作完成之前,我们不会关闭数据库连接。这确保了我们在执行任何下一个数据库操作之前,数据库客户端连接是可用的。

示例代码可在 GitHub 上找到。

结论

在本文中,我们通过一个简单的例子向你展示了如何在 MongoDB 中创建或更新文档。我们希望你现在已经掌握了这个过程,可以在你的应用程序中使用这个技巧。