📜  在 MongoDB 中添加和查询数据(1)

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

在 MongoDB 中添加和查询数据

MongoDB 是一款开源的 NoSQL 数据库,它以 JSON 类似的格式存储数据,具有高度的灵活性和可扩展性。本文将介绍如何在 MongoDB 中添加和查询数据。

连接 MongoDB

在使用 MongoDB 之前,需要先连接到 MongoDB 数据库。我们可以使用 MongoDB 的官方驱动或第三方驱动来连接 MongoDB。

官方驱动

使用官方驱动连接 MongoDB,需要安装官方的 MongoDB Node.js 驱动程序,可以通过 npm 安装。

npm install mongodb --save

连接 MongoDB 数据库的代码示例:

const MongoClient = require('mongodb').MongoClient;
const uri = 'mongodb+srv://<username>:<password>@<cluster-address>/test?retryWrites=true&w=majority';

MongoClient.connect(uri, function(err, client) {
  if (err) {
    console.log('Error occurred while connecting to MongoDB Atlas...\n', err);
  }
  console.log('Connected...');
  // perform actions on the collection object
  client.close();
});
第三方驱动

除了官方驱动之外,还有很多第三方驱动可以连接到 MongoDB。比如 Mongoose 是一种非常流行的 MongoDB 驱动,它提供了更多的特性和抽象层,使得开发更加便捷。

在使用 Mongoose 之前,需要通过 npm 安装。

npm install mongoose --save

连接 MongoDB 数据库的代码示例:

const mongoose = require('mongoose');
const uri = 'mongodb+srv://<username>:<password>@<cluster-address>/test?retryWrites=true&w=majority';

mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true })
  .then(() => console.log('Connected...'))
  .catch(err => console.log('Error occurred while connecting to MongoDB Atlas...\n', err));
添加数据

在 MongoDB 中添加数据很简单。可以通过插入文档的方式来添加数据。

官方驱动

使用官方驱动添加数据的代码示例:

const MongoClient = require('mongodb').MongoClient;
const uri = 'mongodb+srv://<username>:<password>@<cluster-address>/test?retryWrites=true&w=majority';

MongoClient.connect(uri, function(err, client) {
  if (err) {
    console.log('Error occurred while connecting to MongoDB Atlas...\n', err);
  }
  console.log('Connected...');

  const collection = client.db('test').collection('users');
  const doc = { name: 'John', age: 20, email: 'john@example.com' };

  collection.insertOne(doc, function(err, result) {
    if (err) console.log('Error occurred while inserting...\n', err);
    console.log('Data inserted...');
  });

  client.close();
});
第三方驱动

使用 Mongoose 添加数据的代码示例:

const mongoose = require('mongoose');

mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true })
  .then(() => console.log('Connected...'))
  .catch(err => console.log('Error occurred while connecting to MongoDB Atlas...\n', err));

const userSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String
});

const User = mongoose.model('User', userSchema);

const user = new User({ name: 'John', age: 20, email: 'john@example.com' });

user.save()
  .then(() => console.log('Data inserted...'))
  .catch(err => console.log('Error occurred while inserting...\n', err));
查询数据

查询数据是 MongoDB 中最重要的操作之一。MongoDB 提供了丰富的查询语法,使得查询数据非常方便。

官方驱动

使用官方驱动查询数据的代码示例:

const MongoClient = require('mongodb').MongoClient;
const uri = 'mongodb+srv://<username>:<password>@<cluster-address>/test?retryWrites=true&w=majority';

MongoClient.connect(uri, function(err, client) {
  if (err) {
    console.log('Error occurred while connecting to MongoDB Atlas...\n', err);
  }
  console.log('Connected...');

  const collection = client.db('test').collection('users');

  // Find all documents
  collection.find().toArray(function(err, docs) {
    if (err) console.log('Error occurred while finding...\n', err);
    console.log('All documents:');
    console.log(docs);
  });

  // Find documents with name 'John'
  collection.find({ name: 'John' }).toArray(function(err, docs) {
    if (err) console.log('Error occurred while finding...\n', err);
    console.log('Documents with name John:');
    console.log(docs);
  });

  client.close();
});
第三方驱动

使用 Mongoose 查询数据的代码示例:

const mongoose = require('mongoose');

mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true })
  .then(() => console.log('Connected...'))
  .catch(err => console.log('Error occurred while connecting to MongoDB Atlas...\n', err));

const userSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String
});

const User = mongoose.model('User', userSchema);

// Find all documents
User.find({}, function(err, docs) {
  if (err) console.log('Error occurred while finding...\n', err);
  console.log('All documents:');
  console.log(docs);
});

// Find documents with name 'John'
User.find({ name: 'John' }, function(err, docs) {
  if (err) console.log('Error occurred while finding...\n', err);
  console.log('Documents with name John:');
  console.log(docs);
});
总结

本文介绍了如何在 MongoDB 中添加和查询数据。无论你使用官方驱动还是第三方驱动,MongoDB 都提供了易用且强大的 API,使得开发变得更加快速和便捷。使用 MongoDB,可以更好地满足不同项目的需求,并且在可扩展性方面具有很大的优势。