什么是MongoDB
MongoDB 是一个开源文档数据库,提供高性能、高可用性和自动扩展的功能。 MongoDB 是用 C++ 语言编写的非关系型数据库。 与 HBase 相比,MongoDB 可以存储具有更加复杂的 数据结构 的数据,具有很强的数据描述能力。
1、易扩展性
MongoDB使用分片技术对数据进行扩展,MongoDB能自动分片、自动转移分片里面的数据块,去掉了关系型数据库的关系型特性,数据之间没有关系。让每一个服务器里面存储的数据都是一样大小。这样就非常容易扩展。
2、网站数据具有高性能
Mongo非常适合实时的插入,保留了关系型数据库即时查询的能力,并具备网站实时数据存储所需的复制及高度伸缩性。
3、具有高伸缩性的场景
Mongo非常适合由数十或数百台服务器组成的数据库,Mongo的路线图中已经包含对MapReduce引擎的内置支持。
4、存储动态性
相较于传统的数据库当要增加一个属性值的时候要对表大动,mongodb的面向文档的形式可以使其属性值轻意的增加和删除。而原来 的关系型数据库要实现这个需要有很多的属性表来支持。
5、速度与持久性
MongoDB通过驱动调用写入时,可以立即得到返回得到成功的结果(即使是报错),这样让写入的速度更加快,当然会有一定的不安全性,完全依赖网络。
VSCode操作MongoDB
首先需要创建一下初始化
npm init -i
npm install mongoose
要在项目中引入 mongoose ,然后连接我们本地的 test
数据库
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/text');
声明连接对象
var db = mongoose.connection;
链接成功调用的函数
db.once("open", function () { console.log("连接成功"); })
链接失败调用的函数
db.on("error", function (error) { console.log(error); })
声明一个模式 用来规范集合存储的对象的基本结构 连接成功时,回调函数会被调用
var kittySchema = mongoose.Schema({
name: String,
//设置时间的默认值 type:属性类型
date: {
type: Date,
default: Date.now
},
// required:true 是属于必填项 min max是取值范围
age: {
type: Number,
min: 18,
max: 30,
required: true
},
});
创建一个表
//Kitten为表名称 插入成功后会在后面加上s 数据表名称 kitten=>kittens
// kitty 构造函数,根据模式生成的
// 第一个参数是集合名称
// 第二个参数是模式对象
let Kitty = mongoose.model('Kitten', kittySchema);
向数据表中插入参数
//第一种方法
var kitty = new kitty();
kitty.name="张三"
kitty.age=20
//第二种方法(常用)
let kitty = new Kitty({
name: "张三",
age: 20
});
//添加数据 发送数据
kitty.save(function (error, res) {
if (error) return console.log(error);
console.log(res,"添加成功");
});
向数据库中删除参数
//带有条件的删除 删除 name = 张三的 数据
Kitty.remove({name:"张三"},function (error,res) {
if(error) return console.log(error);
if(res.deletedCount && res.deletedCount > 0){
console.log(res,"删除成功");
}
})
向数据库中修改某个参数
//将name名为枫叶的修改成张三
Kitty.updateMany({name:"枫叶"},{name:"张三"},function(error,res){
if(error) return console.log(error);
// console.log(res);
if(res.nModified && res.nModified > 0){
console.log("更新成功");
}
})
向数据库中查看某个数据
//查看所有age大于20 并且date等于2021-08-13T08:43:41.610Z的数据
Kitty.find({age:{$gte:20},date:"2021-08-13T08:43:41.610Z"},function(error,res) {
if(error) return console.log(error);
console.log(res);
});
在VSCode快速讲json插入数据库中
需要借助(MongoDB for VS Codev0.6.10
预览版)插件中完成
全部选中下方代码会弹出Run Selected Lines From Playground
点击Run Selected Lines From Playground 进行页面编辑
// text 表示要插入的数据库名称
const database = 'text';
// sun表示数据表名称
const sun = 'sun';
// Create a new database.
use(database);
// 讲括号里的值改成插入的数据表名称
db.createCollection(sun);
// db.表名称.insertMany([数据表],{ordered:true})
db.sun.insertMany([
{"name":"张三"},
{"name":"李四"},
{"name":"王五"}
],{
ordered:true
})