MongoDB的数据模型是面向文档的,类似于JSON的结构,MongoDB这个数据库中存的是各种各样的BSON # MongoDB安装教程 (ps:安装好之后配置环境变量,启动MongoDB服务)...集合(collection):集合类似于数组,在集合中可以存放文档。 文档(document):文档数据库中的最小单位,我们存储和操作的内容都是文档。...为Html5的文档中,添加一个classes:{base:["h6+c3","js","jQuery", "abc"] , core:["三大框架","node.js"]} //MongoDB的文档的属性值也可以是一个文档..."jQuery", "abc"], core:["三大框架","node.js"]}}}); db.colleges.find(); //11.查询有核心课程为 三大框架 的文档 //MongoDB支持直接通过内嵌文档的属性进行查询...创建company数据库, 将it666和section集合导入到数据库中 db.it666.find() db.section.find() //24.查询HTML5学院的所有老师 //(cno)
7、Node.js中模块加载机制 (1)模块查找规则-当模块拥有路径但没有后缀时 image.png require方法根据模块路径查找模块,如果是完整路径,直接引入模块。...如果模块后缀省略,先找同名JS文件再找同名JS文件夹 如果找到了同名文件夹,找文件夹中的index.js 如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找main选项中的入口文件...如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到 (2)模块查找规则-当模块没有路径且没有后缀时 Node.js会假设它是系统模块 Node.js会去node_modules文件夹中...客户端:在浏览器中运行的部分,就是用户看到并与之交互的界面程序。使用HTML、CSS、JavaScript构建。 服务器端:在服务器中运行的部分,负责存储数据和处理应用逻辑。...URL的组成 传输协议://服务器IP或域名:端口/资源所在位置标识 http:超文本传输协议,提供了一种发布和接收HTML页面的方法。
如果模块后缀省略,先找同名JS文件再找同名JS文件夹 如果找到了同名文件夹,找文件夹中的index.js 如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找...main选项中的入口文件 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到 2.模块查找规则-当模块没有路径且没有后缀时 require(' find') ; Node.js...会假设它是 系统模块 Node.js会去node_ modules文件夹中 首先看是否有该名字的JS文件 再看是否有该名字的文件夹 如果是文件夹看里面是否有indexjs...如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件 否则找不到报错
如果模块后缀省略,先找同名JS文件再找同名JS文件夹 如果找到了同名文件夹,找文件夹中的index.js 如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找...main选项中的入口文件 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到 2....模块查找规则-当模块没有路径且没有后缀时 require(' find') ; Node.js会假设它是 系统模块 Node.js会去node_ modules文件夹中 首先看是否有该名字的...JS文件 再看是否有该名字的文件夹 如果是文件夹看里面是否有indexjs 如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件 否则找不到报错
如果要设置指定的返回条数可以使用limit()方法,该方法只接受一个参数,指定了返回的条数。...var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/"; MongoClient.connect...result) { if (err) throw err; console.log(result); db.close(); }); }); 如果要指定跳过的条数...var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/"; MongoClient.connect...').MongoClient; var url = "mongodb://127.0.0.1:27017/"; MongoClient.connect(url, function(err, db)
✍️ 作者简介: 前端新手学习中。...作者主页: 作者主页查看更多前端教学 专栏分享:css重难点教学 Node.js教学 从头开始学习 目录 模块的加载机制 优先从缓存中加载 内置模块的加载机制... 自定义模块的加载机制 第三方模块的加载机制 目录作为模块加载 ---- 模块的加载机制 优先从缓存中加载 模块在第一次加载后会被缓存,这也意味着多次调用...内置模块的加载机制 内置模块是由Node.js官方提供的模块,内置模块的加载优先级最高。 意思是说 如果自定义模块,与内置模块同名,则优先会加载内置模块。 .../开头,则Node.js会从当前父级模块开始查找子级node_modules文件夹,然后从里面查找导入的模块名称。
《深入浅出Node.js》第五章《内存控制》阅读笔记 随着 Node 的发展,JavaScript 的应用场景早已不再局限在浏览器中。...heapTotal 已申请到的堆内存 heapUsed 当前使用的堆内存 为什么 V8 要限制堆的大小: V8 为浏览器而设计,不太可能遇到用大量内存的场景 V8 的垃圾回收机制的限制。...这意味着 V8 使用的内存没办法根据使用的情况自动扩充,当内存分配过程中超过极限值时,就会引起进程出错。 V8 的垃圾回收机制 V8 的垃圾回收策略主要基于分代式垃圾回收机制。...在 V8 中,主要将内存分为新生代和老生代两代。新生代中的对象为存活时间较短的对象,老生代中的对象为存活时间较长或常驻内存的对象。 ?...Mark-Sweep 是标记清除的意思,它分为两个阶段,标记和清除。Mark-Sweep 在标记阶段遍历堆中的所有对象,并标记活着的对象,在随后的清除阶段中,只清除未被标记的对象。 ?
以下实例将 name 为 "菜鸟教程" 的数据删除 : var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost...; }); 执行成功后,进入 mongo 管理工具查看数据已删除: > db.site.find() > 如果要删除多条语句可以使用 deleteMany() 方法 以下实例将 type 为 en 的所有数据删除...: 如果要删除多条语句可以使用 deleteMany() 方法 以下实例将 type 为 en 的所有数据删除 : 排序 排序 使用 sort() 方法,该方法接受一个参数,规定是升序(1)还是降序...例如: { type: 1 } // 按 type 字段升序 { type: -1 } // 按 type 字段降序 按 type 升序排列: var MongoClient = require('mongodb...').MongoClient; var url = "mongodb://localhost:27017/"; MongoClient.connect(url, function(err, db)
集合 集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。...集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。...它有很高的性能以及队列过期的特性(过期按照插入的顺序). 有点和 "RRD" 概念类似。 Capped collections 是高性能自动的维护对象的插入顺序。...MongoDB 的操作日志文件 oplog.rs 就是利用 Capped Collection 来实现的。...它们使用了系统的命名空间: dbname.system.* 在MongoDB数据库中名字空间 .system.* 是包含多种系统信息的特殊集合(Collection),如下: 集合命名空间 描述 dbname.system.namespaces
前言:模块机制是 Node.js 中非常重要的组成,模块机制使得我们可以以模块化的方式写代码,而不是全部代码都写到一个文件里。...我们平时使用的比较多的通过 require 加载模块,但是我们可能不是很清楚 require 的实现原理,另外 Node.js 里存在多种模块类型,加载原理也不太一样,本文将会介绍 Node.js 模块机制以及实现原理...1 模块机制的初始化和使用 1.1 注册 C++ 模块 在 Node.js 启动的时候,会通过 RegisterBuiltinModules 注册 C++ 模块。...ExecuteBootstrapper 会读取 internal/bootstrap/loaders.js 的内容,并且封装到一个函数中,这个函数如下 function (process, getLinkedBinding...2.4 C++ 模块 2.5 Addon 模块 后记:模块机制在任何语言里都是非常基础且重要的部分,深入理解 Node.js 的模块机制原理,我们知道 require 的时候到时候发生了什么,如果你对模块加载的具体实现感兴趣
张培跃 ID:laozhangsishu 不止于前 关注 增删改查: var mongodb=require("mongodb"); var MongoClient=mongodb.MongoClient...function(err,client){ if(err){ console.log("失败"); }else{ //指定数据库的名字...,function(err,results){ cb(err,results); }) }) } //插入多条记录 /* * collection:插入的集合..., * arr:插入的文档 * cb:回调函数。...通过该函数返回执行的结果*/ module.exports.insertMany=function(collection,arr,cb){ _connect(function(db){
Node.js 可以与 MongoDB 集成,从而创建强大的 Web 应用程序。本文将详细介绍如何使用 Node.js 连接和操作 MongoDB 数据库。...安装完上述软件后,我们可以开始连接 Node.js 和 MongoDB。安装 MongoDB 驱动程序首先,我们需要安装 Node.js 的 MongoDB 驱动程序。...在命令行中运行以下命令来安装 mongodb 包:npm install mongodb这会将 mongodb 包安装到你的 Node.js 项目中,并将其添加到 package.json 文件的依赖项中...;总结通过使用 Node.js 的 MongoDB 驱动程序,我们可以轻松地在 Node.js 中连接和操作 MongoDB 数据库。...本文详细介绍了如何安装 MongoDB 驱动程序、连接到 MongoDB、执行数据库操作以及关闭连接。希望本文能帮助你理解和使用 Node.js 连接 MongoDB,并在你的应用程序中取得成功。
在MongoDB中支持多种类型的索引,包括单字段索引、复合索引、多key索引、文本索引等,每种类型的索引有不同的使用场合。...1.单字段索引 指的是在索引中只包含了一个键,MongoDB默认创建的_Id索引也是这种类型 创建方式:createIndexes({索引键:排序规则}) db.user.createIndex({...在查询文档时,在查询条件中包含一个交叉索引键或者在一次查询中使用多个交叉索引键作为查询条件都会触发交叉索引。...,不光能满足多个字段组合起来的查询,也能满足所有能匹配符合索引前缀的查询。...4.多key索引 当索引的字段为数组时,创建出的索引称为多key索引,多key索引会为数组的每个元素建立一条索引。
写在前面 无论是浏览器端还是服务端Node.js,都在使用EventLoop事件循环机制,都是基于Javascript语言的单线程和非阻塞IO的特点。...在EventLoop事件队列中有宏任务和微任务队列,分析宏任务和微任务的运行机制,有助于我们理解代码在浏览器中的执行逻辑。 那么,我们得思考几个问题: 浏览器的EventLoop发挥着什么作用?...Node.js服务端的EventLoop发挥着什么作用? 宏任务和微任务分别有哪些方法? 宏任务和微任务互相嵌套,执行顺序是什么样的?...Node.js中的Process.nextick和其它微任务方法在一起的时候执行顺序是什么? Vue也有个nextick,它的逻辑又是什么样的呢?...滚动页面、放大缩小等) 微任务(Microtask Queue): process.nextTick Promise Object.observe MutationObserver 宏任务 页面进程中引入了消息队列和事件循环机制
本文所有的代码均基于 node.js 14 LTS 版本分析 概念 进程是对正在运行中的程序的一个抽象,是系统进行资源分配和调度的基本单位,操作系统的其他所有内容都是围绕着进程展开的 线程是操作系统能够进行运算调度的最小单位...网络 I/O 不占用线程池) 事件循环 既然 js 执行线程只有一个,那么 node 还能支持高并发在于 node 进程中通过 libuv 实现了一个事件循环机制,当执主程发生阻塞事件,如 I/O 操作时...由于对于开发者来说是单线程,所以在 Node.js 日程开发中通常不会存在线程竞争的问题和线程锁的一些概念 子进程 从上面的单线程机制可知 Node.js 使用事件循环机制来实现高并发的 I/O...cluster](https://nodejs.org/api/cluster.html)模块 创建多个子进程,并在每个子进程中启动一个独立的 HTTP 服务器进行监听和处理客户端请求 const cluster...具体的逻辑为:将这个 handle 保存到队列中,并从工作进程队列中获取一个空闲的工作进程。
我们在编写程序的时候,也经常引用其他模块,包括Node内置的模块和来自第三方的模块。 使用模块还可以避免函数名和变量名冲突。...相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。...CommonJS规范 这种模块加载机制被称为CommonJS规范。...也就是说,JavaScript语言本身并没有一种模块机制来保证不同模块可以使用相同的变量名。 那Node.js是如何实现这一点的? 其实要实现“模块”这个功能,并不需要语法层面的支持。...; // hello.js代码结束 })(); 这样一来,原来的全局变量s现在变成了匿名函数内部的局部变量。如果Node.js继续加载其他模块,这些模块中定义的“全局”变量s也互不干扰。
和异步API Node.js的API主要有两种风格,同步和异步,如何区分呢,大部分异步API一般都有一个回调函数 callback 作为其参数,而大部分同步API则不会,例如: // 异步 API const...Node.js 支持多种机制来处理应用程序运行时发生的错误。...如何处理这些错误完全取决于错误的类型和被调用的 API 的风格,所有的 JavaScript 错误和大部分同步 API 都用 try / catch 机制处理: const fs = require('...,该错误也可以用 process.on('uncaughtException') 来捕获 CLASS Error Node.js 的错误机制不会解释为什么会发生错误,它只会通过追踪栈信息来尽可能的描述该错误...module.js:635:30 没有绝对路径的一般表示 Node.js 的调用 native 一个方法描述一般表示 V8 引擎的调用 结语:本文介绍了 Node.js 的错误异常处理机制,跟原生
如何看 Node.js 源码 require 函数是如何产生的?为什么在 module 中可以直接使用。...模块分类 原生(核心)模块:Node 提供的模块我们都称之为原生模块 内建模块:Node.js 原生提供的模块中,由纯 C/C++ 编写的称为内建模块 全局模块:Node.js在启动时,会生成一个全局量...的模块加载机制,Node.js 的模块加载机制总结下来一共八步。...使用方式 上面手写过程中已经说了使用方式 import的使用方式 Node.js 中的 vm 模块是什么? 写不动了,喝完奶茶的动力过去了,我要去睡觉了,后面发一篇小文章介绍 vm 模块吧!...require 的源码中还是有很多细节点可以学习和分析的,比如这里忽略了 isMain 主文件判断,启动时候 require 的使用(这个会在另一篇文章 Node.js 的启动源码分析中介绍),以及在
nvm 的安装还是比较简单的,主要是需要完成下载安装和路径配置即可。 首先可以使用命令 nvm 来查看当前系统中有没有安装 nvm。...安装过程 下面对安装的过程进行一些说明和配置。 同意许可协议 选择安装路径 在安装的时候,使用默认的安装路径就可以了。...校验安装 重新打开一个控制台工具,在控制台工具中输入命令 nvm ls,如果能够看到当前的 nodejs 版本的话,则说明 nvm 已经配置好了。...通常来说你并不需要主动将 nvm 的可执行文件添加到 path 路径中,如果这里你还提示没有可以执行的命令的话,你需要尝试退出下你的控制台,再次启动。...如果还有问题的话,请查看下你的 nvm 可执行文件是不是在你的 PATH 路径中。 查看可用的 nodejs 版本 执行命令:nvm ls available 能够查看可用的 nvm 版本。
领取专属 10元无门槛券
手把手带您无忧上云