当前位置:网站首页 > 数据科学与大数据 > 正文

NoSQL数据库(五)01-mongoDB入门——介绍与应用场景、安装与可视化工具 & 使用node-mongodb-native进行增删改查

NoSQL数据库(五)01-mongoDB入门——介绍与应用场景、安装与可视化工具 & 使用node-mongodb-native进行增删改查

第四章 mongoDB

介绍

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

mongoD是关系型数据库的补充。

应用场景

适用场景
  1. 用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。
  2. 主要用来存储一些监控数据,No schema 对开发人员来说,真的很方便,增加字段不用改表结构,而且学习成本极低。
  3. 网站数据:适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  4. 大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
不适用场景
  1. 高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
如何选择

如果上述有1个 Yes,可以考虑 MongoDB,2个及以上的 Yes,选择MongoDB绝不会后悔。

在这里插入图片描述

安装

sudo brew install mongodb 
  • 可视化工具安装
    • https://studio3t.com/download-thank-you/?OS=osx
  • nodejs操作mongoDB库
    • https://github.com/mongodb/node-mongodb-native
    • npm install mongodb --save

增删改查

三个概念

  • 数据库
  • 集合: 类似关系型数据库里的表
  • 文档: 一条一条的数据
const insertDocuments = function(db, callback) { 
    // Get the documents collection const collection = db.collection('documents'); // Insert some documents collection.insertMany([ { 
   a : 1, b: 2}, { 
   a : 2, b: 2}, { 
   a : 3, b:3} ], function(err, result) { 
    console.log("Inserted 3 documents into the collection"); callback(result); }); } 
const selectData = function(db, callback) { 
    const collection = db.collection('documents'); var whereStr = { 
    b: 2 }; collection.find(whereStr).toArray((err, result) => { 
    callback(result) }) } 
const updateData = function(db, callback) { 
    const collection = db.collection('documents'); var whereStr = { 
    a: 1 }; var updataStr = { 
    $set: { 
    b: 1 } }; collection.update(whereStr, updataStr, function() { 
    callback(); }); } 
const delData = function(db, callback) { 
    const collection = db.collection('documents'); var whereStr = { 
    a: 1 }; collection.remove(whereStr, (err, result) => { 
    callback(result) }); } 
实例

app.js

const MongoClient = require('mongodb').MongoClient; // 引入库 // const assert = require('assert'); // Connection URL const url = 'mongodb://localhost:27017'; // mongo默认端口 27017 // Database Name const dbName = 'myproject'; // 定义数据库的名称  const client = new MongoClient(url); // 实例化一个客户端 并且连接数据库 const insertDocuments = function(db, callback) { 
    // Get the documents collection const collection = db.collection('documents'); //概念:集合 建了一张 documents这样的表 // Insert some documents collection.insertMany([ { 
   a : 1, b: 2}, { 
   a : 2, b: 2}, { 
   a : 3, b:3} // 添加3条数据, 字段有2个分别是 a,b ], function(err, result) { 
    console.log("Inserted 3 documents into the collection"); callback(result); }); } const selectData = function(db, callback) { 
    const collection = db.collection('documents'); var whereStr = { 
    b: 2 }; // 语法非常的简洁 collection.find(whereStr).toArray((err, result) => { 
    callback(result) }) } const updateData = function(db, callback) { 
    const collection = db.collection('documents'); var whereStr = { 
    a: 1 }; var updataStr = { 
    $set: { 
    b: 1 } }; collection.update(whereStr, updataStr, function() { 
    callback(); }); } const delData = function(db, callback) { 
    const collection = db.collection('documents'); var whereStr = { 
    a: 1 }; collection.remove(whereStr, (err, result) => { 
    callback(result) }); } // Use connect method to connect to the server client.connect(function(err) { 
    console.log("Connected successfully to server"); const db = client.db(dbName); // 创建一个数据库 叫做 myproject 或者链接 // 1. 建表  // insertDocuments(db, function() { // 插入数据 // client.close(); // }); // selectData(db, function(data) { 
    // console.log(data); // client.close(); // }); // updateData(db, function() { 
    // client.close(); // }); delData(db, function() { 
    client.close(); }); }); 
到此这篇NoSQL数据库(五)01-mongoDB入门——介绍与应用场景、安装与可视化工具 & 使用node-mongodb-native进行增删改查的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • NoSQL数据库(五)022-Egg+Redis+MongoDb实现登录流程——业务流程梳理 & 安装依赖与页面编写2024-11-30 11:18:06
  • js之对象分类、数据类型分类和存储位置、函数 function介绍、变量的作用域2024-11-30 11:18:06
  • vue3中,方法之对象深拷贝、判断对象的数据类型2024-11-30 11:18:06
  • vue3进阶(四)——export function导出定义数据和接口数据 &封装el-select组件 & 获取sessionStorage中的基准地址apiUrl & watch和toRefs写法2024-11-30 11:18:06
  • axios配置多个接口请求(二)——vue项目axios配置多个IP地址,并进行请求数据2024-11-30 11:18:06
  • NoSQL数据库(四)-memcached——介绍-分布式内存对象缓存系统、安装、api之set设置、add新增、replace替换、append追加2024-11-30 11:18:06
  • NoSQL数据库(三)05-Redis进阶与实战——总结之事务-错误处理和watch、过期时间、sort排序、by排序 & noedjs操作redis数据库2024-11-30 11:18:06
  • NoSQL数据库(三)04-Redis进阶与实战——nodejs操作redis数据库之ioredis更新属于node_redis改良版 & ioredis的可视化工具安装、基本语法、管道与事务2024-11-30 11:18:06
  • NoSQL数据库(三)03-Redis进阶与实战——EXPIRE实现服务器缓存数据 & sort实现排序之对列表类型、有序集合和非数字类型进行排序 & Redis的底层通信协议对管道提供支持2024-11-30 11:18:06
  • NoSQL数据库(三)02-Redis进阶与实战——EXPIRE命令设置过期时间-实现定期检测删除过期数据 & EXPIRE实现和优化访问服务器频率限制2024-11-30 11:18:06
  • 全屏图片