2020年一篇文章入门Mongodb
logo
不要问我为什么挂图,听说挂图可以提供浏览量
介绍
MongoDB是一种存储二进制JSON格式的非关系数据库。
版本
小版本号,奇数为开发板、偶数为稳定版。
3.2版本后不支持32位系统。
下载安装(4.2)
下载:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.2-signed.msi
安装:无脑下一步
配置:配置环境变量
默认端口:27017
核心概念
数据库:数据的仓库
集合:类似于数组
文档:Mongo最小的单位,一般操作的是文档
注意:在MongoDB中数据库和集合不用手动创建。
系统变量
db:当前数据库的名字
基本指令
show dbs:列出数据库
use <数据库名>:进入数据库
注意:如果没有数据库会自动创建数据库。
show collections :显示数据库中所以的集合。
db..drop():删除集合
db.dropDatabase(): 删除所在的数据库
CRUD指令
插入文档
db..insert(JSON)
向集合中插入一个JSON文档。
查询文档
db..find()
查询中的所有JSON文档,返回的是数组。
db..findOne({:})
查询与等于的JSON文档,返回的是对象。
内嵌查询:{“filed.filed”:value}
分页:.skip().limit()
修改文档
db..update(query,doc,options)
查询到query,将query匹配的那个JSON进行替换为doc。
操作符:在doc中写
$set:{}:修改某一个字段。
$unset:{}:删除某个字段。
$push:{}: 添加元素到一个数组
$addToSet:{}: 添加不重复的元素到数组
参数:options
mulit:boolean 修改多个
注意:默认改一个。
删除文档
db..deteleOne()
db..deleteMany()
db..remove()
注意:默认删除多个。
文档关系
一对一
一对多
多对多
文档其他操作
sort
db..find().sort(SortJSON);
SortJSON:
{
filed:1 | -1
}
说明:
对filed字段进行
1-升序或
-1-降序
排序
投影
db..find({},MapJSON);
MapJSON:
{
filed:0 | 1
}
说明:
显示或隐藏某个字段
0-隐藏
1-显示
Mongoose
Node操作mongodb的库。
优势
可以对文档创建一个模式结构(Schema)
对模型中的对象进行约束。
自动类型转换
对象
Schema:模式对象
Model:集合就是模型
Document:就是JSON
Schema->Model->Document
安装
npm i -S mongoose
使用
const mongo = require('mongoose');
const { Schema, model } = mongo;
const stuSchema = new Schema({
name:String,
age:Number,
gender:Number,
address:String
});
const Student = model('Student', stuSchema);
mongo.connection.once('open',()=>console.log("连接成功"));
mongo.connection.once('close', ()=> console.log("断开连接"));
async function start() {
const connect = await mongo.connect('mongodb://localhost:27017/dome1',{useNewUrlParser:true ,useUnifiedTopology:true});
// const resRowInfo = await Student.create({
// name:100,
// age:"15",
// gender:"男"
// });
// // const resRowInfo = await Student.find();
// const resRowInfo = await Student.remove({gender:null});
const resRowInfo = await Student.findOne()
resRowInfo.name = '猪八戒';
resRowInfo.address = '高老庄';
resRowInfo.save();
console.log(resRowInfo);
// connect.disconnect();
}
start();
发表评论 (审核通过后显示评论):