安装:
启动mongodb服务器:
mongod
修改默认端口:
mongod --port 新的端口号
- mongodb默认的端口:27017
设置mongodb数据库的存储路径:
mongod --dbpath 路径
:star: 连接mongodb数据库:
mongo
三大基本概念:
数据库 database
集合(数组) collection
- 类似与SQL中的数据表,本质上是一个数组,里面包含看多个文档对象,[{},{},{}]
文档对象 document
- 类似与SQL中的记录,一个文档对象{}就是一条记录
一个数据库由多个集合构成,一个集合包含多个文档对象。
基本使用:
- show dbs 或show databases
- 查看所有的数据库
- use xxx
- 切换到指定的数据库
- db
- 查看当前操作的数据库
- show collections
- 查看当前数据库中所有的集合
数据库的CRUD操作:
插入数据
- 插入一条数据
- db.collectionName.insertOne( {name:’liu’} )
- db表示的是当前操作的数据库
- collectionName表示操作的集合,若没有,则会自动创建
- 插入的文档如果没有手动提供_id属性,则会自动创建一个
- db.collectionName.insertOne( {name:’liu’} )
- 插入多条数据
- db.collectionName.insertMany( [ {name:’liu5’} , {name:’liu6’} ] )
- 需要用数组包起来
- db.collectionName.insertMany( [ {name:’liu5’} , {name:’liu6’} ] )
- 万能API:db.collectionName.insert()
1 |
|
查询数据
db.collectionName.find() 或db.collectionName.find({})
- 查询集合所有的文档,即所有的数据。
- 查询到的是整个数组对象。在最外层是有一个对象包裹起来的。
- db.collectionName.count()或db.collectionName.length() 统计文档个数
db.collectionName.find({_id:222})
- 条件查询。注意:结果返回的是一个数组
db.collectionName.findOne() 返回的是查询到的对象数组中的第一个对象
- 注意:
1
2> db.students.find({_id:222}).name //错误
> db.students.findOne({_id:222}).name //正确
1 | 1.mongodb支持直接通过内嵌文档的属性值进行查询 |
修改数据
1 | 1.替换整个文档 |
删除数据
1 | 1. db.collectionName.remove() |
文档之间的关系:
一对一
一对多
1 | 用户与订单: |
- 多对多
1 | 老师与学生 |
mongoose:
简介:
1.mongoose是nodejs中的专门用于操作mongodb数据库的js库
2.mongoose中的对象:
- Schema 模式对象(用于约束文档的结构)
- Model 模型对象(即mongodb中的集合)
- Document 文档对象(即mongodb中的文档)
安装:
1 | npm i -s mongoose |
连接数据库:
1 | // 1.引入mongoose |
创建模式对象和模型对象:
1 | const Schema=mongooes.schema; |
利用模型对象进行增删查改操作:
添加操作:
1 | UserModel.create({ user_id: 100, name: "liu1" }, function (err) { |
查询操作:
1 | /* |
修改操作:
1 | /* 修改: |
删除操作:
1 | /* |
模块化处理:
1.单独创建一个数据库连接文件dbconncet.js
1
2
3
4
5
6
7
8const mongooes = require("mongoose");
mongooes.connect("mongodb://localhost/mongooes_test", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
mongooes.connection.once("open", function () {
console.log("连接成功");
});2.为每一个集合创建一个模型对象文件xxxModel.js
1
2
3
4
5
6
7
8
9
10
11
12
13const mongooes = require("mongoose");
const Schema = mongooes.Schema;
const userSchema = new Schema({
user_id: String,
name: String,
age: Number,
gender: {
type: Number,
default: 0,
},
});
const UserModel = mongooes.model("user", userSchema);
module.exports = UserModel;3.在最终的文件index.js中引入数据库连接文件和创建模型的文件:
1
2
3
4
5
6
7
8const mongooes = require("./dbconncet");
const PostModel = require("./models/postModel");
PostModel.findOne({}, function (err, data) {
if (!err) {
console.log(data);
}
});
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CrazyKong!
评论