📅  最后修改于: 2023-12-03 14:51:02.543000             🧑  作者: Mango
MongoDB 是一款开源的 NoSQL 数据库,它以 JSON 类似的格式存储数据,具有高度的灵活性和可扩展性。本文将介绍如何在 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,可以更好地满足不同项目的需求,并且在可扩展性方面具有很大的优势。