📜  就像在 mongodb 中一样 - Javascript (1)

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

就像在 MongoDB 中一样 - JavaScript

如果您熟悉 MongoDB 数据库,那么使用 JavaScript 进行编程可能会非常自然。在 JavaScript 中,可以使用许多与 MongoDB 类似的语法和方法,使得编写 MongoDB 应用程序变得非常简单。

连接到 MongoDB

在 JavaScript 中连接到 MongoDB 非常简单。您只需使用 MongoDB 驱动程序中的 MongoClient 对象创建一个新的连接。以下是一个示例:

const MongoClient = require('mongodb').MongoClient;
const uri = process.env.MONGODB_URI;

const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
  const collection = client.db("test").collection("devices");
  // perform actions on the collection object
  client.close();
});

在这个例子中,我们创建了一个名为 MongoClient 的常量,然后使用我们的 MongoDB 连接字符串 (process.env.MONGODB_URI) 创建了一个新的连接。我们还指定了使用新的 URL 解析程序和拓扑。

一旦我们成功连接,我们可以通过使用 client.db 来访问 MongoDB 数据库。在这个例子中,我们连接到名为 test 的数据库,然后打开了名为 devices 的集合。

查询数据

在 JavaScript 中,您可以使用 find 方法来查询 MongoDB 中的数据。以下是一个示例:

const dbName = 'test';
const collectionName = 'devices';

// Find all documents in the collection
collection.find({}).toArray(function(err, docs) {
  console.log("Found the following records");
  console.log(docs);
});

// Find documents where the name is "iPhone"
collection.find({ name: "iPhone" }).toArray(function(err, docs) {
  console.log(`Found the following ${docs.length} records`);
  console.log(docs);
});

// Find documents where the price is less than $200
collection.find({ price: { $lt: 200 } }).toArray(function(err, docs) {
  console.log(`Found the following ${docs.length} records`);
  console.log(docs);
});

在每个查询中,我们都使用 collection.find 方法,并传递一个查询条件作为参数。在第一个查询中,我们仅传递了一个空对象,这意味着我们希望返回所有文档。在其他查询中,我们指定要匹配的字段和条件。

插入数据

在 JavaScript 中,您可以使用 insertOneinsertMany 方法将数据插入 MongoDB 数据库。以下是一个示例:

const dbName = 'test';
const collectionName = 'devices';

// Insert a single document
const document = { name: "iPhone X", price: 999 };
collection.insertOne(document, function(err, res) {
  console.log("1 document inserted");
});

// Insert multiple documents
const documents = [
  { name: "Samsung Galaxy S10", price: 700 },
  { name: "Google Pixel 3", price: 799 }
];
collection.insertMany(documents, function(err, res) {
  console.log(`${res.insertedCount} documents inserted`);
});

在这个例子中,我们创建了一个名为 document 的对象,并将其传递给 insertOne 方法,该方法会将其插入到集合中。然后,我们创建了一个名为 documents 的数组,并将其传递给 insertMany 方法,该方法将一次性插入所有文档。

更新数据

在 JavaScript 中,您可以使用 updateOneupdateMany 方法来更新 MongoDB 中的文档。以下是一个示例:

const dbName = 'test';
const collectionName = 'devices';

// Update a single document
collection.updateOne(
  { name: "iPhone X" },
  { $set: { price: 899 } },
  function(err, res) {
    console.log("1 document updated");
  }
);

// Update multiple documents
collection.updateMany(
  { price: { $lt: 800 } },
  { $inc: { price: 100 } },
  function(err, res) {
    console.log(`${res.modifiedCount} documents updated`);
  }
);

在第一个更新示例中,我们使用 updateOne 方法,并传递一个包含要更新文档条件的查询对象以及一个包含新值的更新对象。在第二个更新示例中,我们使用 updateMany 方法,将所有价格小于800美元的文档的价格增加100美元。

删除数据

在 JavaScript 中,您可以使用 deleteOnedeleteMany 方法来从 MongoDB 中删除文档。以下是一个示例:

const dbName = 'test';
const collectionName = 'devices';

// Delete a single document
collection.deleteOne({ name: "iPhone X" }, function(err, res) {
  console.log("1 document deleted");
});

// Delete multiple documents
collection.deleteMany({ price: { $gt: 1000 } }, function(err, res) {
  console.log(`${res.deletedCount} documents deleted`);
});

在第一个删除示例中,我们使用 deleteOne 方法并传递一个包含要删除文档条件的查询对象。在第二个删除示例中,我们使用 deleteMany 方法,并将所有价格大于1000美元的文档删除。

结论

在 JavaScript 中,与 MongoDB 一起编程非常容易。您可以使用 MongoDB 驱动程序中的许多语法和方法,从而使得编写 MongoDB 应用程序变得非常简单。希望这个简短的介绍可以帮助您开始使用 JavaScript 与 MongoDB 进行编程!