📜  猫鼬对对象的响应 - Javascript (1)

📅  最后修改于: 2023-12-03 15:27:06.781000             🧑  作者: Mango

猫鼬对对象的响应 - Javascript

猫鼬(Mongoose)是一个用于NodeJS的MongoDB对象文档映射器(ODM),它提供了许多便利的方式来创建,读取,更新和删除(CRUD)MongoDB记录。

安装

你可以使用npm来安装Mongoose:

npm install mongoose
连接到MongoDB

在使用Mongoose之前,我们需要连接到MongoDB数据库。这可以通过以下方式完成:

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/my_database', { useNewUrlParser: true });

这将连接到本地运行的MongoDB实例并打开名为my_database的数据库。当然,你需要将链接字符串更改为你自己的MongoDB实例。

定义模式

在Mongoose中,模式表示MongoDB文档中数据的结构。模式可以通过JavaScript对象定义,并使用Mongoose Schema类将其转换为Mongoose模式。以下是一个简单的例子:

const mongoose = require('mongoose');
const { Schema } = mongoose;

const blogPostSchema = new Schema({
  title: String,
  body: String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs: Number
  }
});

在本例中,我们已经定义了一个博客文章的模式,它包含一个标题,正文,评论,日期,是否隐藏和有关文章的元数据。

创建模型

在Mongoose中,模型是数据在MongoDB中进行存储和检索所需的结构。模型可通过JavaScript对象定义,并利用Mongoose model函数将其转换为Mongoose模型。以下是一个简单的例子:

const mongoose = require('mongoose');
const { Schema } = mongoose;

const blogPostSchema = new Schema({
  title: String,
  body: String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs: Number
  }
});

const BlogPost = mongoose.model('BlogPost', blogPostSchema);

现在我们已经用BlogPost变量创建了一个Mongoose模型,它可以对MongoDB进行读写操作。

创建对象

一旦我们有了模型,我们就可以使用它来创建新的MongoDB文档。使用Mongoose,这可以通过以下方式完成:

const mongoose = require('mongoose');
const { Schema } = mongoose;

const blogPostSchema = new Schema({
  title: String,
  body: String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs: Number
  }
});

const BlogPost = mongoose.model('BlogPost', blogPostSchema);

const post = new BlogPost({ title: 'My First Post', body: 'Lorem ipsum dolor sit amet' });

post.save(function (err, post) {
  if (err) return console.error(err);
  console.log(post);
});

在这个例子中,我们创建了一个名为post的新Mongoose对象,它包含标题和正文。然后我们调用save方法,将新的MongoDB文档保存到数据库中。

读取对象

使用Mongoose可以轻松地从MongoDB数据库中读取文档。以下是一个简单的例子:

const mongoose = require('mongoose');
const { Schema } = mongoose;

const blogPostSchema = new Schema({
  title: String,
  body: String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs: Number
  }
});

const BlogPost = mongoose.model('BlogPost', blogPostSchema);

BlogPost.find(function (err, posts) {
  if (err) return console.error(err);
  console.log(posts);
});

在本例中,我们使用find方法从MongoDB数据库中检索所有博客文章。当执行成功时,我们将在控制台中打印所有检索到的博客文章。

更新对象

使用Mongoose,你可以轻松地更新MongoDB中的文档。以下是一个简单的例子:

const mongoose = require('mongoose');
const { Schema } = mongoose;

const blogPostSchema = new Schema({
  title: String,
  body: String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs: Number
  }
});

const BlogPost = mongoose.model('BlogPost', blogPostSchema);

BlogPost.findOneAndUpdate({ title: 'My First Post' }, { hidden: true }, function (err, post) {
  if (err) return console.error(err);
  console.log(post);
});

在这个例子中,我们使用findOneAndUpdate方法更新了标题为My First Post的博客文章,将hidden属性设置为true

删除对象

与创建、读取和更新对象类似,使用Mongoose可以轻松地从MongoDB数据库中删除文档。以下是一个简单的例子:

const mongoose = require('mongoose');
const { Schema } = mongoose;

const blogPostSchema = new Schema({
  title: String,
  body: String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs: Number
  }
});

const BlogPost = mongoose.model('BlogPost', blogPostSchema);

BlogPost.deleteOne({ title: 'My First Post' }, function (err) {
  if (err) return console.error(err);
  console.log('Post deleted successfully');
});

在这个例子中,我们使用deleteOne方法删除了标题为My First Post的博客文章。

总结

猫鼬是一个功能强大且易于使用的MongoDB对象文档映射器。使用猫鼬,你可以轻松地创建、读取、更新和删除MongoDB文档,并且有很多其他的高级功能可供使用。在开始使用猫鼬之前,确保你已经安装了它,并已成功连接到MongoDB数据库。然后,你可以开始定义模式、创建模型以及创建、读取、更新和删除MongoDB文档。