Node(八)之MongoDB简单应用

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: Node(八)之MongoDB简单应用

初始:

1.下载mongodb的安装包,https://www.mongodb.com/download-center/community

2.安装

3.安装完成后在data文件夹下新建一个db文件夹

4.加入环境变量:复制安装目录下bin文件夹的目录,右击我的电脑=>属性(见下图)在环境变量中粘贴bin文件路径,用分号隔开环境变量

1.webp.jpg5.打开控制台输入:mongod 查看是否安装成功

6.使用mongo命令连接至数据库

db操作:

这里新建一个名字为User的数据库

use User------数据库名称(切换当前操作的数据库,若没有则是创建新数据库)
show dbs------显示所有数据库
db.User.insert({"name":"abc"})-----插入name为'abc'的一项

collection:集合

db.createCollection('集合名');  创建集合

db.集合名.drop()  删除一个集合

show collections  查看所有的集合

每个数据库都要有集合,不然创建的是临时数据

document操作:

插入文档:

db.col.insert({

       "email" : "admin",

       "password" : "root"

})

查找文档:

db.col.find(条件,不填则查找全部)

更新文档:

db.col.update({
  "email" : "admin"
}, {
  $set: {
    "email" : "admin1",
     "password" : "root1"
  }
}, {
  multi: true
})

寻找所有email为admin的值,并且更新值email为admin1和password为root1,multi设置为true时可以更新多个文档

覆盖更新:

db.col.save({
  '_id':3,
  'email': 'abc'
})

根据传入的id,覆盖旧值

删除文档:

db.col.remove({
  '_id':3
})

删除id为3的那一项

db.col.remove({})

将col全部删除

限制显示的条数:

db.col.find().limit(2)   表示显示查找到的前两项

跳过显示的数据:

db.age.find().skip(2)   表示跳过查找到的前两项

排序:

db.col.find().sort({age:1})  根据age升序排列(-1是降序排列)

连接Node

首先下载node插件:

npm install mongodb

然后执行以下代码:

var MongoClient = require("mongodb").MongoClient;//获取mongo模块
var mongoDB = "mongodb://localhost:27017/";
//新建数据库连接
MongoClient.connect(
    mongoDB,
    function (err, db) {
        if (err) {
            throw err;
        }
        console.log("连接成功!");
        db.close();//断开连接
    }
);

Node查询:

var MongoClient = require("mongodb").MongoClient;
var mongoDB = "mongodb://localhost:27017/";
MongoClient.connect(
    mongoDB,{useNewUrlParser: true},
    function (err, db) {
        if (err) {
            throw err;
        }
        console.log("连接成功!");
        var dball = db.db('UserList');//数据库名
        dball.collection('allUser').find({}).toArray(function(err,result) {//查询语句
            if (err) {
                console.log(arr);//抛错
                return;
            }
            console.log(result);//打印查询结果(这里是查询所有)
            db.close();
        });
    }
);

Node插入:

var MongoClient = require("mongodb").MongoClient;
var mongoDB = "mongodb://localhost:27017/";
MongoClient.connect(
    mongoDB,{useNewUrlParser: true},
    function (err, db) {
        if (err) {
            throw err;
        }
        console.log("连接成功!");
        var dball = db.db('UserList');      
        // 添加
        dball.collection("allUser").insert([{//插入两项,放在数组中
            email: '12345',
            password:'54321'
        }, {
            email: 'root',
            password:'root'
        }], function (err, result) {
            if (err) {
                console.log('Error:' + err);
                return;
            }
            console.log(result)//返回插入结果
        })
        db.close();//关闭数据库连接
    }
);

Node更新:

var MongoClient = require("mongodb").MongoClient;
var mongoDB = "mongodb://localhost:27017/";
MongoClient.connect(
    mongoDB,{useNewUrlParser: true},
    function (err, db) {
        if (err) {
            throw err;
        }
        console.log("连接成功!");
        var dball = db.db('UserList');
        // 更新数据库
        dball.collection("allUser").update({//查找email为abcde的,将email换成12345,password换成12345
            email: 'abcde'
        }, {$set:{
            email: '12345',
            password:'12345'
        }}, function (err) {
            if (err) {
                console.log('Error:' + err);
                return;
            }
        })
        db.close();
    }
);

Node删除:

var MongoClient = require("mongodb").MongoClient;
var mongoDB = "mongodb://localhost:27017/";
MongoClient.connect(
    mongoDB,{useNewUrlParser: true},
    function (err, db) {
        if (err) {
            throw err;
        }
        console.log("连接成功!");
        var dball = db.db('UserList');
        // 删除
        dball.collection("allUser").remove({
        //删除email为12345的那项
            email: '12345'
        }, function (err) {
            if (err) {
                console.log('Error:' + err);
                return;
            }
        })
        db.close();
    }
);






相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
Web App开发 监控 JavaScript
【Node系列】创建第一个服务器应用
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。它采用事件驱动、非阻塞I/O模型,使得程序可以以高效地方式处理并发请求。
23 4
|
5天前
|
开发框架 JavaScript 中间件
中间件应用Koa.js(Node.js)
我们添加了两个中间件。第一个中间件记录请求的开始时间,并在下一个中间件执行完毕后计算并打印出请求的总时间。第二个中间件与之前的示例相同,它设置响应体为 "Hello World"
20 6
|
15天前
|
JavaScript 前端开发 持续交付
【专栏】Vue.js和Node.js如何结合构建现代Web应用
【4月更文挑战第27天】本文探讨了Vue.js和Node.js如何结合构建现代Web应用。Vue.js作为轻量级前端框架,以其简洁易懂、组件化开发、双向数据绑定和虚拟DOM等特点受到青睐;而Node.js是高性能后端平台,具备事件驱动、非阻塞I/O、丰富生态系统和跨平台优势。两者结合实现前后端分离,高效通信,并支持热更新、持续集成、跨平台和多端适配,为开发高性能、易维护的Web应用提供强有力的支持。
|
1月前
|
存储 JavaScript 前端开发
Angular 应用 node_modules 子文件夹 @types 的作用介绍
Angular 应用 node_modules 子文件夹 @types 的作用介绍
15 1
|
19小时前
|
存储 监控 JavaScript
使用Node.js构建实时聊天应用的技术指南
【5月更文挑战第12天】本文指导使用Node.js、Express.js和Socket.IO构建实时聊天应用。技术栈包括Node.js作为服务器环境、WebSocket协议、Express.js作为Web框架和Socket.IO处理实时通信。步骤包括项目初始化、安装依赖、搭建服务器、实现实时聊天功能、运行应用以及后续的完善和部署建议。通过这个指南,读者可以学习到创建简单实时聊天应用的基本流程。
|
1天前
|
存储 NoSQL 物联网
【MongoDB 专栏】MongoDB 在物联网(IoT)领域的应用
【5月更文挑战第11天】MongoDB,一种灵活可扩展的非关系型数据库,在物联网(IoT)领域中大放异彩。应对海量设备产生的多样化数据,MongoDB的文档型数据结构适应性强,适合存储设备信息及传感器读数。其实时更新、强大查询语言、索引机制和扩展性(通过分片技术)满足物联网的高实时性、复杂查询和数据增长需求。尽管面临数据安全和管理挑战,MongoDB已广泛应用于智能家居、工业 IoT 和智能交通等领域,并有望随着物联网技术进步和与其他领域的融合,如人工智能、大数据,持续发展。未来,优化数据质量、提升并发处理能力将是关键,MongoDB将在物联网的智能未来中扮演重要角色。
【MongoDB 专栏】MongoDB 在物联网(IoT)领域的应用
|
1天前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 在实时数据分析中的应用
【5月更文挑战第11天】MongoDB,作为强大的非关系型数据库,擅长实时数据分析。其灵活数据模型适应多样化数据,分布式架构支持水平扩展,处理海量数据和高并发查询。应用于物联网、实时监控、金融交易分析及电商个性化推荐等领域。结合流处理技术和数据可视化工具,提升实时分析效能。然而,注意数据一致性和性能调优是应用关键。未来,MongoDB将持续发展,为企业实时数据分析带来更多可能性和机遇。
【MongoDB 专栏】MongoDB 在实时数据分析中的应用
|
1天前
|
缓存 监控 NoSQL
【MongoDB 专栏】MongoDB 的变更流(Change Streams)应用
【5月更文挑战第11天】MongoDB的变更流是实时监控数据库动态的机制,允许应用程序订阅并响应文档的插入、更新和删除事件。它提供实时性、灵活性和解耦性,适用于数据同步、实时通知、缓存更新等多种场景。然而,使用时需注意性能、错误处理和版本兼容性。随着技术发展,变更流将在构建智能实时系统中扮演更重要角色,为数据处理带来新机遇。
【MongoDB 专栏】MongoDB 的变更流(Change Streams)应用
|
2天前
|
存储 NoSQL 大数据
【MongoDB 专栏】MongoDB 在大数据场景下的应用
【5月更文挑战第11天】MongoDB,适用于大数据时代,以其灵活数据模型、高可扩展性和快速性能在大数据场景中脱颖而出。它处理海量、多类型数据,支持高并发,并在数据分析、日志处理、内容管理和物联网应用中广泛应用。电商和互联网公司的案例展示了其在扩展性和业务适应性上的优势,但同时也面临数据一致性、资源管理、数据安全和性能优化的挑战。
【MongoDB 专栏】MongoDB 在大数据场景下的应用
|
5天前
|
JavaScript 中间件 API
中间件应用Express.js(Node.js)
我们定义了一个名为 `logger` 的中间件函数。它接受请求对象、响应对象以及下一个中间件函数作为参数。当接收到请求时,它会打印出请求的 HTTP 方法和 URL,然后调用 `next()` 函数来将控制权传递给下一个中间件或路由处理器。我们使用 `app.use()` 方法将 `logger` 中间件添加到了应用级别的中间件堆栈中,这意味着它将对所有请求生效。
12 3