MongoDB增删改查(上)

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: MongoDB增删改查(上)

1. mongoDB的环境搭建


1.1数据库相关概念


在一个数据库软件中可以包含多个数据仓库,在每个数据仓库中可以包含多个数据集合,每个数据集合中可以包含多条文档(具体的数据)。

1670059290616.jpg

1.2 Mongoose第三方包


  • 使用Node.js操作MongoDB数据库需要依赖Node.js第三方包mongoose
  • 使用npm install mongoose命令下载


1.3 启动mongoDB


在命令行工具中运行net start mongoDB即可启动MongoDB,否则MongoDB将无法连接。

这个启动命令需要在管理员模式下运行


1.4 数据库连接


使用mongoose提供的connect方法即可连接数据库。

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/playground')
    .then(() => console.log('数据库连接成功'))
    .catch(err => console.log('数据库连接失败', err))


1.5 创建数据库


在MongoDB中不需要显式创建数据库,如果正在使用的数据库不存在,MongoDB会自动创建。

在创建集合时会自动创建数据库


2. MongoDB 增删改查操作


2.1 创建集合


创建集合分为两步,一是对对集合设定规则,二是创建集合,创建mongoose.Schema构造函数的实例即可创建集合。

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/playground')
    .then(() => console.log('数据库连接成功'))
    .catch(err => console.log('数据库连接失败', err))
// 设定集合规则
const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    isPublished: Boolean
});
// 创建集合并应用规则 Course 是返回来的一个构造函数
const Course = mongoose.model('Course', courseSchema); // courses


2.2 创建文档


创建文档实际上就是向集合中插入数据

分为两步:

①创建集合实例。

②调用实例对象下的save方法将数据保存到数据库中。

第一种方式:

// 创建集合实例
const course = new Course({
    name: 'Node.js mongonDB',
    author: 'gaohan',
    isPublished: true
});
// 将数据保存在数据库中
course.save();

第二种方式:

// 第二种方式, 可以用上Promise
Course.create({name: 'javascript', author: 'aaaaa', isPublished: true})
    .then(doc => console.log(doc))
    .catch(err => console.log(err))


2.3 mongoDB 数据库导入数据


前提:找到mongodb数据库的安装目录,将安装目录下的bin目录放置在环境变量中。

mongoimport –d 数据库名称 –c 集合名称 –file 要导入的数据文件。

mongoimport -d playground -c users --file user.json

1670060749382.jpg

2.4 查询文档


查询集合所有文档

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/playground')
    .then(() => console.log('数据库连接成功'))
    .catch(err => console.log('数据库连接失败', err))
// 创建集合规则
const userSchema = new mongoose.Schema({
    name: String,
    age: Number,
    email: String,
    password: String,
    hobbies: [String]
});
// 使用规则创建集合
const User = mongoose.model('User', userSchema);
// 查询用户集合中所有文档
User.find().then(result => console.log(result))

根据id查询文档

User.findOne({_id: '5c09f2d9aeb04b22f846096b'}).then(result => console.log(result))

查询用户集合中年龄字段大于20并且小于40的文档

User.find({age: {$gt: 20, $lt: 40}}).then(result => console.log(result))

查询用户集合中匹配包含敲代码的文档

User.find({hobbies: {$in: ['敲代码']}}).then(result => console.log(result))

根据年龄字段升序排列

User.find().sort('age').then(result => console.log(result))

根据年龄字段降序排列

User.find().sort('-age').then(result => console.log(result))

skip 跳过多少条数据 limit 限制查询数量

User.find().skip(2).limit(2).then(result => console.log(result))


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
6月前
|
NoSQL 数据可视化 关系型数据库
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
152 0
|
8月前
|
JSON NoSQL MongoDB
mongodb基本操作,增删改查,查询,索引,权限机制
mongodb基本操作,增删改查,查询,索引,权限机制
|
9月前
|
存储 NoSQL Java
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
388 0
|
9月前
|
SQL NoSQL API
五分钟叫你学会操作MongoDB增删改查
五分钟叫你学会操作MongoDB增删改查
129 0
|
10月前
|
JSON NoSQL 数据库连接
[虚幻引擎 MongoDB Client 插件说明] DTMongoDB MongoDB数据库连接插件,UE蓝图可以操作MongoDB数据库增删改查。
本插件可以在UE里面使用蓝图操作MongoDB数据库, 对数据库进行查询,删除,插入,替换,更新操作。
137 0
|
11月前
|
NoSQL 关系型数据库 MySQL
MongoDB 基本操作 增删改查
MongoDB 基本操作 增删改查
191 0
|
JSON NoSQL 关系型数据库
MongoDB学习笔记(二) 增删改查
MongoDB学习笔记(二) 增删改查
149 0
|
JSON NoSQL 关系型数据库
MongoDB(一)——增删改查,排序分页,索引,权限机制
数据库就是用来存放数据的仓库 关系型和非关系型数据库软件的项目数据 相同点:都是数据库软件,用来存放项目数据
400 0
MongoDB(一)——增删改查,排序分页,索引,权限机制
|
NoSQL Java MongoDB
springboot——整合MongoDB实现对数据库的增删改查
springboot——整合MongoDB实现对数据库的增删改查
261 0
|
JSON NoSQL MongoDB
MongoDB基本操作(一)——简介、基本操作、增删改查
MongoDB基本操作(一)——简介、基本操作、增删改查
264 0