Node(八)之MongoDB简单应用

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 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
相关文章
|
26天前
|
监控 JavaScript 算法
如何使用内存监控工具来定位和解决Node.js应用中的性能问题?
总之,利用内存监控工具结合代码分析和业务理解,能够逐步定位和解决 Node.js 应用中的性能问题,提高应用的运行效率和稳定性。需要耐心和细致地进行排查和优化,不断提升应用的性能表现。
176 77
|
28天前
|
存储 缓存 JavaScript
如何优化Node.js应用的内存使用以提高性能?
通过以上多种方法的综合运用,可以有效地优化 Node.js 应用的内存使用,提高性能,提升用户体验。同时,不断关注内存管理的最新技术和最佳实践,持续改进应用的性能表现。
116 62
|
2天前
|
存储 NoSQL atlas
探索MongoDB:发展历程、优势与应用场景
MongoDB 是一个开源的文档型数据库,由 DoubleClick 团队于2007年创立,旨在解决传统数据库的扩展性和灵活性问题。它支持 JSON 格式的存储和查询,具备高可用性、高扩展性和灵活性等优势。MongoDB 适用于社交、物联网、视频直播和内容管理等多种场景,并被阿里巴巴、腾讯等一线互联网公司广泛使用。其主要版本包括 MongoDB Atlas(云服务)、MongoDB Enterprise Advanced(商业版)和 MongoDB Community Edition(免费版)。自2009年发布1.0版本以来,MongoDB 不断创新,最新版本为7.0,在性能和功能上持续优化。
25 12
|
23天前
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
66 31
|
24天前
|
JavaScript 前端开发 API
深入理解Node.js事件循环及其在后端开发中的应用
本文旨在揭示Node.js的核心特性之一——事件循环,并探讨其对后端开发实践的深远影响。通过剖析事件循环的工作原理和关键组件,我们不仅能够更好地理解Node.js的非阻塞I/O模型,还能学会如何优化我们的后端应用以提高性能和响应能力。文章将结合实例分析事件循环在处理大量并发请求时的优势,以及如何避免常见的编程陷阱,从而为读者提供从理论到实践的全面指导。
|
23天前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
39 3
|
27天前
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
2月前
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第20天
42 0
|
2月前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
|
2月前
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第9天
57 0
下一篇
DataWorks