什么是 MongoDB?
MongoDB 是一个 NoSQL 数据库,与传统的关系型数据库不同,它使用文档存储数据,而不是使用表格。这使得 MongoDB 更加灵活和可扩展。同时,MongoDB 也支持复杂的查询,使得它在大数据场景下具有很好的应用价值。
什么是 Mongoose?
Mongoose 是一个 Node.js 的 MongoDB ODM(Object Document Mapping)库,它提供了一种基于 Schema 的方式来定义数据模型,并且封装了 MongoDB 原生的操作方法,使得开发者可以更加方便地操作 MongoDB 数据库。
安装 Mongoose
在开始使用 Mongoose 之前,我们需要先安装它。可以通过 npm 来安装:
npm install mongoose
基本使用方法
连接到 MongoDB
在使用 Mongoose 之前,我们需要先连接到 MongoDB 数据库。可以使用 mongoose.connect
方法来连接:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true });
其中 'mongodb://localhost/test'
是 MongoDB 的连接地址,{ useNewUrlParser: true }
是一个可选的参数,用来指定使用新的 URL 解析器。
定义 Schema
在 Mongoose 中,我们需要先定义 Schema 来描述数据模型。Schema 是一个 JavaScript 对象,它定义了数据模型的字段和类型。
// javascriptcn.com 代码示例 const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ name: String, age: Number, email: String, }); const User = mongoose.model('User', userSchema);
上面的代码定义了一个 User
模型,它有三个字段:name
、age
和 email
,分别对应 String、Number 和 String 类型。
创建文档
定义了 Schema 后,我们就可以使用它来创建文档了。
// javascriptcn.com 代码示例 const user = new User({ name: '张三', age: 18, email: 'zhangsan@example.com', }); user.save(function (err) { if (err) { console.log(err); } else { console.log('saved!'); } });
上面的代码创建了一个 User
文档,并将它保存到数据库中。save
方法是异步的,它会在保存完成后调用回调函数。如果出现错误,回调函数的参数 err
会有值。
查询文档
Mongoose 提供了多种方式来查询文档,最常用的是 find
方法。
User.find({ name: '张三' }, function (err, docs) { if (err) { console.log(err); } else { console.log(docs); } });
上面的代码查询了所有 name
字段等于 '张三'
的文档,并将结果打印出来。
更新文档
Mongoose 提供了 updateOne
和 updateMany
方法来更新文档。
User.updateOne({ name: '张三' }, { age: 20 }, function (err) { if (err) { console.log(err); } else { console.log('updated!'); } });
上面的代码将所有 name
字段等于 '张三'
的文档的 age
字段更新为 20
。
删除文档
Mongoose 提供了 deleteOne
和 deleteMany
方法来删除文档。
User.deleteOne({ name: '张三' }, function (err) { if (err) { console.log(err); } else { console.log('deleted!'); } });
上面的代码删除了所有 name
字段等于 '张三'
的文档。
总结
本文介绍了 MongoDB 的 Mongoose 库的基本使用方法,包括连接到 MongoDB、定义 Schema、创建文档、查询文档、更新文档和删除文档。Mongoose 提供了很多方便的方法来操作 MongoDB 数据库,使得开发者可以更加高效地进行开发。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657c8d60d2f5e1655d75fdb7