注册

mongodb的写操作

好的!首先,我们需要了解 MongoDB 是一款文档数据库,它以 BSON(一种类似于 JSON 格式的二进制格式)的形式存储数据,支持多种编程语言。在 MongoDB 中,文档表示一种键值对的序列,可以存储不同结构的数据,并且没有预定义的表结构。下面我将详细介绍 MongoDB 的写入操作方法:

1. 向 MongoDB 插入数据

MongoDB 提供了 insertOneinsertMany 两个方法插入一条或多条数据。在 insertOneinsertMany 方法中,需要传入一个文档对象,文档对象中包含要插入的数据。以 insertOne 方法为例,下面是示例代码:

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

const uri = 'mongodb+srv://:@cluster0.example.net/test?retryWrites=true&w=majority';

const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });

client.connect(err => {
  const collection = client.db("test").collection("devices");
  // 插入一条数据
  collection.insertOne(
    { name: "iPhone", brand: "Apple", price: 6999 },
    function(err, res) {
        if (err) throw err;
        console.log("1 document inserted");
        client.close();
    }
  );
});

上面代码中,我们使用了一个 MongoClient 对象来连接 MongoDB 数据库,然后获取 devices 集合,使用 insertOne 方法向集合中插入一条数据。插入成功后,会输出 “1 document inserted”。

2. 更新 MongoDB 中的数据

MongoDB 提供了 updateOneupdateMany 两个方法更新一条或多条满足条件的数据。在 updateOneupdateMany 方法中,需要传入两个参数,第一个参数是一个条件对象,表示要更新的数据的条件,第二个参数是一个更新对象,表示要更新的数据。以 updateOne 方法为例,下面是示例代码:

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

const uri = 'mongodb+srv://:@cluster0.example.net/test?retryWrites=true&w=majority';

const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });

client.connect(err => {
  const collection = client.db("test").collection("devices");
  // 更新一条数据
  collection.updateOne(
    { name: "iPhone" },
    { $set: { price: 7999 } },
    function(err, res) {
        if (err) throw err;
        console.log("1 document updated");
        client.close();
    }
  );
});

上面代码中,我们使用了一个 MongoClient 对象来连接 MongoDB 数据库,然后获取 devices 集合,使用 updateOne 方法更新符合条件的第一条记录。更新成功后,会输出 “1 document updated”。

示例说明

  1. 向 MongoDB 插入一条数据

假设我们已经连接到 MongoDB 数据库,并且获取到了 devices 集合对象。现在我们要向 devices 集合中插入一条新的数据,数据如下:

{
  name: "iPad",
  brand: "Apple",
  price: 4999
}

我们可以使用 insertOne 方法向 devices 集合中插入一条数据,示例代码如下:

collection.insertOne(
  { name: "iPad", brand: "Apple", price: 4999 },
  function(err, res) {
      if (err) throw err;
      console.log("1 document inserted");
      client.close();
  }
);

插入数据成功后,会输出 “1 document inserted”。

  1. 更新 MongoDB 中的数据

假设我们已经连接到 MongoDB 数据库,并且获取到了 devices 集合对象。现在我们要将 devices 集合中所有品牌为 Apple 的商品的价格修改为 8999。我们可以使用 updateMany 方法更新符合条件的所有记录,示例代码如下:

collection.updateMany(
  { brand: "Apple" },
  { $set: { price: 8999 } },
  function(err, res) {
      if (err) throw err;
      console.log("Documents updated: " + res.modifiedCount);
      client.close();
  }
);

更新数据成功后,会输出 “Documents updated: x”,表示更新了 x 条记录。