NodeJS中的MongoDB快速入门详细教程


Posted in NodeJs onNovember 11, 2016

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

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

一、MongoDB必须理解的概念

1.数据库:每个数据库都有自己的权限和集合。

2.文档:一个键值对。

3.集合:一组文档,即一组键值对。当第一个文档插入时,集合就会被创建。

二、Mac下的MongoDB安装和启动

1.使用brew进行安装:brew install mongodb。

2.建立目录:mkdir -p /data/db。这样建立的是mongodb配置中的默认目录。

3.设置/data/db的权限为可读可写:chown `id -u` /data/db。

4.运行mongod命令,开启服务器。

5.新建一个命令终端,输入mongo,进入mongo命令行工具(mongod命令不能暂停)这样就可以在mongo命令行工具中输入各种mongo命令了。

三、MongoDB命令行的基本操作

1.show dbs:查看数据库

2.show collections:查看当前数据库的集合

3.db.COLLECTION_NAME.find():查看该集合下的所有文档

4.use DATABASE_NAME:使用某个数据库

5.db.COLLECTION_NAME.insert({“key”:”value”,””:””......}):向某个集合中插入文档(注意格式)

6.db.COLLECTION_NAME.find({“a”:1}):查找a值为1的文档

7.db.dropDatabase():删除当前正在use的数据库

四、在Node中使用MongoDB

1.安装

在项目目录下执行命令:npm install mongodb —save-dev

要注意的是,必须先按照上面的要求安装好MongoDB才能正常使用NodeJS中的Mongodb。

2.基本使用

(1)连接数据库:

<span style="font-family: Arial, Helvetica, sans-serif;">var MongoClient = require(‘mongodb').MongoClient; //引入mongodb</span> 
[javascript] view plain copy print?在CODE上查看代码片派生到我的代码片
var url = ‘mongodb://localhost:27017/testProject' //设定连接的url,注意前半部分是mongodb数据库端口等,testProject是要创建的数据库,可自己命名 
MongoClient.connect(url, function(err, db){ 
//…注意其中的db就指定的是当前数据库 
})

(2)创建集合db.createCollection()

var MongoClient = require('mongodb').MongoClient; 
var url = 'mongodb://localhost:27017/myproject'; 
MongoClient.connect(url, function(err, db) { 
console.log("Connected successfully to server"); 
db.createCollection("myCollection", { "capped": true, "size": 100000, "max": 5000}, function(err, results){ 
console.log("集合创建成功") 
}) 
});

(3)在集合中插入文档collection.insertMany()

var collection = db.collection("myCollection"); //选择某一个集合 
collection.insertMany([{a:1},{b:2},{c:3}],function(err, result){ //插入数据,这里插入了三条数据 
console.log("插入成功"); 
})

这里插一句,每次执行我们的node代码之后,都可以在数据库中进行结果查看,验证我们的操作。比如这里可以使用db.myCollection.find()来查看我们是否成功写入纪录。

(4)查找文档

查找所有文档:

var collection = db.collection("myCollection"); 
<span style="white-space:pre"> </span>collection.find({}).toArray(function(err, docs){ 
<span style="white-space:pre"> </span>console.log(docs); //其中的docs就是获取到的结果 
});

查找符合条件的文档内容:

collection.find({“a”:1}).toArray(function(err, docs){ 
<span style="white-space:pre"> </span>console.log(docs); //返回复合条件的内容 
});

以上所述是小编给大家介绍的NodeJS中的MongoDB快速入门详细教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 NodeJs
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
NodeJS遍历文件生产文件列表功能示例
Jan 22 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 NodeJs
Nodejs异步流程框架async的方法
Jun 07 NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 #NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 #NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 #NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 #NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 #NodeJs
NodeJS使用formidable实现文件上传
Oct 27 #NodeJs
nodejs简单实现操作arduino
Sep 25 #NodeJs
You might like
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP fclose函数用法总结
2019/02/15 PHP
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
python脚本监控docker容器
2016/04/27 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
python中的字符串内部换行方法
2018/07/19 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
django做form表单的数据验证过程详解
2019/07/26 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
大学同学十年聚会感言
2014/02/21 职场文书
婚礼主持词
2014/03/13 职场文书
男性健康日的活动方案
2014/08/18 职场文书
网络销售员岗位职责
2015/04/11 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android