好的!首先,我们需要了解 MongoDB 是一款文档数据库,它以 BSON(一种类似于 JSON 格式的二进制格式)的形式存储数据,支持多种编程语言。在 MongoDB 中,文档表示一种键值对的序列,可以存储不同结构的数据,并且没有预定义的表结构。下面我将详细介绍 MongoDB 的写入操作方法:
1. 向 MongoDB 插入数据
MongoDB 提供了 insertOne
和 insertMany
两个方法插入一条或多条数据。在 insertOne
和 insertMany
方法中,需要传入一个文档对象,文档对象中包含要插入的数据。以 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 提供了 updateOne
和 updateMany
两个方法更新一条或多条满足条件的数据。在 updateOne
和 updateMany
方法中,需要传入两个参数,第一个参数是一个条件对象,表示要更新的数据的条件,第二个参数是一个更新对象,表示要更新的数据。以 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”。
示例说明
- 向 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”。
- 更新 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 条记录。