MongoDB

什么是MongoDB

        MongoDB 是一个开源文档数据库,提供高性能、高可用性和自动扩展的功能。 MongoDB 是用 C++ 语言编写的非关系型数据库。 与 HBase 相比,MongoDB 可以存储具有更加复杂的 数据结构 的数据,具有很强的数据描述能力。

1、易扩展性

MongoDB使用分片技术对数据进行扩展,MongoDB能自动分片、自动转移分片里面的数据块,去掉了关系型数据库的关系型特性,数据之间没有关系。让每一个服务器里面存储的数据都是一样大小。这样就非常容易扩展。

2、网站数据具有高性能

Mongo非常适合实时的插入,保留了关系型数据库即时查询的能力,并具备网站实时数据存储所需的复制及高度伸缩性。

3、具有高伸缩性的场景

Mongo非常适合由数十或数百台服务器组成的数据库,Mongo的路线图中已经包含对MapReduce引擎的内置支持。

4、存储动态性

相较于传统的数据库当要增加一个属性值的时候要对表大动,mongodb的面向文档的形式可以使其属性值轻意的增加和删除。而原来 的关系型数据库要实现这个需要有很多的属性表来支持。

5、速度与持久性

MongoDB通过驱动调用写入时,可以立即得到返回得到成功的结果(即使是报错),这样让写入的速度更加快,当然会有一定的不安全性,完全依赖网络。

VSCode操作MongoDB

首先需要创建一下初始化

npm init -i

安装 MongoDB 和 Node.js

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
})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值