nodejs——MongoDB模块

news/2025/2/12 22:18:14/

MongoDB 是一个面向文档,schema 无关(schema-less)的数据库,它非常适合于 Node.js 应用以及云端部署。
与 MySQL 及 PostgreSQL 是根据固定的结构设计(schema)将数据存储在表中不同,MongoDB 可以将任意类型的文档数据存储到集合中(schema 无关),这也是 MongoDB 最有意思的特性之一。

mongodb 安装

通过官网的下载页面就能获取到 MongoDB。与此同时,你可以看一下 MongoDB 的入门指南。
安装完后打开 mongo 客户端,输入 mongo 后,显示版本号表示安装成功。

安装 MongoDB 驱动

npm install mongodb

创建数据库

创建 mydb 数据库

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";MongoClient.connect(url, function(err, db) {if (err) throw err;console.log("Database created!");db.close();
});

创建集合

创建 customers 集合

MongoClient.connect(url, function(err, db) {if (err) throw err;var dbo = db.db("mydb");dbo.createCollection("customers", function(err, res) {if (err) throw err;console.log("Collection created!");db.close();});
});

增删改查

添加数据
要将记录或 MongoDB 中所称的文档插入到集合中,我们使用insertOne() 方法。MongoDB 中的文档与 MySQL 中的记录相同,insertOne() 方法的第一个参数是一个对象,包含要插入的文档中每个字段的名称和值。

MongoClient.connect(url, function(err, db) {if (err) throw err;var dbo = db.db("mydb");var myobj = { name: "Company Inc", address: "Highway 37" };dbo.collection("customers").insertOne(myobj, function(err, res) {if (err) throw err;console.log("1 document inserted");db.close();});
});

修改数据
您可以使用updateOne() 方法更新记录或MongoDB中所称的 document。updateOne() 方法的第一个参数是定义要更新的文档的 query 对象。

MongoClient.connect(url, function(err, db) {if (err) throw err;var dbo = db.db("mydb");var myquery = { address: "Highway 37" };var newvalues = { $set: {name: "Mickey", address: "Canyon 123" } };dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {if (err) throw err;console.log("1 document updated");db.close();});
});

查询数据
要从MongoDB的集合中选择数据,我们可以使用findOne()方法。findOne() 方法返回选择中的第一个匹配项。findOne() 方法的第一个参数是一个 query 对象。

// 查询一条数据
MongoClient.connect(url, function(err, db) {if (err) throw err;var dbo = db.db("mydb");dbo.collection("customers").findOne({}, function(err, result) {if (err) throw err;console.log(result.name);db.close();});
});

在集合中查找文档时,可以使用查询对象筛选结果。
find() 方法的第一个参数是一个查询对象,用于限制搜索。

// 查找 documents 里地址为 Canyon 123 的数据
MongoClient.connect(url, function(err, db) {if (err) throw err;var dbo = db.db("mydb");var query = { address: "Canyon 123" };dbo.collection("customers").find(query).toArray(function(err, result) {if (err) throw err;console.log(result);db.close();});
});

删除数据
要删除记录或MongoDB中所称的文档,我们使用deleteOne() 方法。deleteOne() 方法的第一个参数是定义要删除哪个文档的 query 对象。

MongoClient.connect(url, function(err, db) {if (err) throw err;var dbo = db.db("mydb");var myquery = { address: 'Canyon 123' };dbo.collection("customers").deleteOne(myquery, function(err, obj) {if (err) throw err;console.log("1 document deleted");db.close();});
});

http://www.ppmy.cn/news/11547.html

相关文章

设计模式面试题

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式,工厂模式在Java程序中可以说是随处可见。本文来给大家详细介绍下工厂模式 面向对象设计的基本原则: OCP(开闭原则,Open-Closed Principle&#xff0…

【Linux】 gcc 、动态库和静态库,程序是如何链接的

文章目录前言一、gcc 是什么?二、使用步骤1.预编译2.编译3.汇编4.链接三、动静态库1.概念2.区别前言 在Linux环境下,除了学好编辑器 vim 的使用,还需要学会C语言的编译器 gcc 的功能,否则代码无法翻译成可执行程序。本文将介绍 gc…

RK3588平台开发系列讲解(日志篇)RK3588 syslog的使用

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、查看是否启用syslog.conf二、配置启用syslog.conf1、配置busybox2、添加配置文件3、编译buildroot烧录三、验证1、编写测试代码2、查看日志文件3、运行测试程序沉淀、分享、成长,让自己和他人都能有所收获!😄 …

详解结构体内存对齐

目录 前言 一、结构体内存对齐规则 二、 offsetof 宏 三、结构体内存对齐的原因 四、 修改默认对齐数 前言 引入问题&#xff1a; #include <stdio.h>struct S {char c1;int i;char c2; };int main() {printf("%zd\n", sizeof(struct S));return 0; } 程…

【主色提取】HSV 颜色空间与 RGB 颜色空间互相转化的公式和代码

系列文章目录 第二章 主色提取之颜色空间转化 目录 系列文章目录 文章目录 前言 一、HSV 和 RGB 颜色空间 二、颜色转化 1. RGB to HSV 2. HSV to RGB 三、 完整代码 前言 HSV 颜色空间和 RGB 颜色空间的转化。 一、HSV 和 RGB 颜色空间 RGB颜色使用的最多&#xff0…

优化SpringBoot程序启动速度

Spring Boot 程序优化 一、延迟初始化Bean 一般在 SpringBoot 中都拥有很多的耗时任务&#xff0c;比如数据库建立连接、初始线程池的创建等等&#xff0c;我们可以延迟这些操作的初始化&#xff0c;来达到优化启动速度的目的。Spring Boot 2.2 版本后引入 spring.main.lazy-i…

n皇后(回溯)

著名的n皇后问题 即在棋盘上任意两个皇后不能在同一行&#xff0c;同一列&#xff0c;或者斜对角线&#xff0c;反斜对角线的位置 以判断&#xff08;5&#xff0c;1&#xff09;位置为例 往右下方&#xff08;斜对角线&#xff09;一连串的位置 &#xff08;5&#xff0c;1&…

【大数据】第一章:了解Hadoop生态圈

大数据特点&#xff08;4V&#xff09; Volume(大量) 非常非常多&#xff0c;大企业数据接近1EB Velocity(高速) 比如在双十一&#xff0c;数据爆增 Variety(多样) 很多样子的数据&#xff0c;比如&#xff0c;代码&#xff0c;图片&#xff0c;视频&#xff0c;JSON&am…