1.mongoDB数据库是简介
MongoDB作为其数据库,具有高性能,易使用,存储数据方便等特点,完全使用JavaScript语法即可操作。
2.mongoDB数据库的概念
数据库 database 就是mongo数据库
集合 collection 就是一个装内容的表格
文档 document 就是装入表格中的数据 操作
字段 field 字段就是文档中的数据
一个mongoDB 可以有 多个数据库 1个数据库 有多个集合 1个集合有多个文档 一个文档有多个字段
3.创建数据库连接 Node.js中使用的mongodb
1.安装 npm i mongoose
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/node')
.then(() => console.log('数据库连接成功'))
.catch(err => console.log('数据库连接失败', err));
4.创建集合
// 设置集合规则
const courseSchema = new mongoose.Schema({ // Schema创建规则
name: String,
author: String,
tags: [ String ],
data: { type: Date, default: Date.now },
isPublished: Boolean
});
// 使用规则创建集合 返回集合类(集合构造函数)
const Course = mongoose.model('Course', courseSchema); // 创建集合
5.添加文档
// 创建集合类的实例
Course.create({name: 'JavaScript基础', author: '黑马讲师', isPublish: true})
.then(doc => console.log(doc))
.catch(err => console.log(err))
6.查询文档
Course.find({ //find是查找 在course集合中找
name: 'wangjian',
isPublished: true
})
.limit(10), //limit限制10条
.sort({name: 1}) // 1 升序 -1 降序
.select({name: 1, tags: 1})
.exec((err, data) => {})
7.删除文档
// 删除单个
Course.findOneAndDelete({}).then(result => console.log(result))
// findOneAndDelete只会删除一个如果有多条数据 就删除第一个
// 删除多个
User.deleteMany({}).then(result => console.log(result))
8.更新文档
// 更新多个
User.updateMany({查询条件}, {要更改的值}).then(result => console.log(result))
// 根据id更新
Course.findByIdAndUpdate(id, {
$set: {
author: 'mosh',
isPublished: false
}
}, err => {})
9.多集合联合查询
// 用户集合
const User = mongoose.model('User', new mongoose.Schema({ name: { type: String } }));
// 文章集合
const Post = mongoose.model('Post', new mongoose.Schema({
title: { type: String },
// 使用ID将文章集合和作者集合进行关联
author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
}));
//联合查询
Post.find()
.populate('author')
.then((err, result) => console.log(result));
发表评论