使用mongoose连接mongodb(转载文章)
mongodb数据库
MongoDB是一个高效的基于分布式文件存储的数据库,将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,很适合和nodejs搭配。
Mongoose是基于nodejs的一个mongodb对象模型工具,可以很方便的对mongodb进行操作。
momngodb和mysql比较
对比项 | MongoDB | MySQL |
---|---|---|
数据库 | 数据库(dataBase) | 数据库(dataBase) |
表 | 集合(collection) | 二维表(table) |
表在中的一行数据 | 文档(document) | 一条记录(record) |
表字段 | 键(key) | 列(column) |
主外键 | 无 | Primary Key |
灵活度扩展性 | 高 | 差 |
表的关联性 | 差 | 高 |
mongodb的安装
windows下的安装
安装
根据电脑操作系统位数下载对应的安装包。安装过程几乎一路下一步就可以安装完成。一般默认安装在C:\Program Files\MongoDB。
安装完mongodb成后,在此,以安装在c盘路径下为例,创建文件夹 C:\data\db。
在mongodb的安装目录的bin文件下,执行命令C:\Program Files\MongoDB\Server\3.2\bin mongod –dbpath c:\data\db,如果出现如下提示一般表示安装成功,这样mongodb的服务就启动了,ctrl+c可关闭服务。
再创建文件夹C:\data\log和文件C:\data\mongod.cfg。
mongod.cfg文件的内容为下:
1 |
systemLog: |
运行命令行执行mongod.cfg来制定数据库和日志文件目录:
C:\Program Files\MongoDB\bin\mongod.exe –config “C:\data\mongod.cfg” –install
启动服务
C:\Program Files\MongoDB\Server\3.2\bin net start MongoDB
启动服务状态下,浏览器打开 http://localhost:27017,如果出现以下内容,表示安装及启动mongodb服务成功。
关闭服务
C:\Program Files\MongoDB\Server\3.2\bin net stop MongoDB
常用命令
安装路径下,运行mongo进入命令模式,C:\Program Files\MongoDB\Server\3.2\bin mongo
1 |
db.help() 查看命令提示 |
linux下的安装
1. 首先查你的linux版本
x86_64 表示你的操作系统为64位
1 |
$ uname -a |
2.下载安装包
1 |
$ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz |
3. 解压
1 |
$ tar -zxvf mongodb-linux-x86_64-3.0.6.tgz |
4. 将解压包拷贝到指定目录
1 |
$ mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb |
5. 将可执行文件添加到path路径
export PATH=/bin:$PATH
本文的安装路径在 /usr/local/mongodb,
所以运行
1 |
$ export PATH=/usr/local/mongodb/bin:$PATH |
6. 创建数据库目录
mongodb的安装需手动创建data存储目录,在此我们在根目录下创建data/mongo文件夹
1 |
$ mkdir -p /data/mongo |
然后在mongo文件夹里创建mongodb.cnf配置文件,用来设置mongodb的数据库路径以及启动参数等。
内容可以如下。
其中,dbpath表示mongodb数据库的路径,logpath是数据库日志路径,port表示连接端口,auth为true表示通过密码验证。
其中注意,auth不设置或设置为false的话,数据库表示没有密码,可以直接连接。自己测试的话可以不设密码,但正式项目中一定要设置密码验证,
否则任何人都可以轻易侵入你的数据库。
1 |
dbpath=/data/mongo/ logpath=/data/mongo/mongo.log logappend=true fork=true port=27017 auth=true |
7. 运行mongodb服务
在/usr/local/mongodb/bin路径下,运行命令,-f 后的路径为自己创建的mongodb配置文件(见第6步)
1 |
$ mongod -f /data/mongo/mongodb.cnf |
如果不创建mongodb.cnf的话,也可以用加参数的方式启动mongodb,效果和启动配置文件一样。但推荐配置文件的方式,修改和启动都方便。
1 |
$ mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017 -auth |
运行后打印类似如下,表示启动mongodb成功
1 |
2018-04-24T08:55:06.486+0000 I JOURNAL [initandlisten] journal dir=/data/db/journal |
8. 数据库的重启
关闭数据库:
切入admin数据库中,然后运行db.shutdownServer() 关闭数据库。
有时关闭失败,可能有其他误操作,这时在/data/mongo下运行rm -f mongod.lock删掉 /data/mongo/mongod.lock文件,再重启就好了。
1 |
$ use admin |
但有时运行db.shutdownServer()依然不能关闭数据库,这是可以采用一种强力的方法,用命令强行杀死mongodb的进程。
1 |
$ netstat -tln // 查看进程 |
启动数据库
1 |
mongod -f /data/mongo/mongodb.cnf |
启动成功后会有successfully的提示符
8. 设置数据库用户及密码
默认安装mongodb,如果直接创建数据库的话,是没有密码的,在真实开发环境中,很有必要为数据库设置密码来保障安全。
Mongodb用户有全局用户和数据库对应用户。
mongodb有一个admin数据库,用于创建全局用户账号,这个账号可以访问可连接到其他数据库。
创建admin账号
1 |
$ use admin // 切到admin数据库 |
可以在可视化工具里通过admin账号连接到所有的数据库。
创建普通数据库账号,方式同创建admin账号,只是要先切进到对应的数据库。
1 |
$ use somedbname // 切到普通数据库 |
项目开发中比如要连接某个数据库:
1 |
mongodb://root:test2@127.0.0.1:27017/somedbname |
注意一点,如果密码有@的话,需要转译成’%40’
文章来源:http://kiwiyan.cn/2018/01/08/%E8%BF%9E%E6%8E%A5mongodb/
==================================
补充:
如果想要进入MongoDB的Shell,需要运行/usr/local/mongodb/bin/mongo
每次都要打这么一长串命令太麻烦了 所以干脆在系统bin目录下给它建立一个软链接吧
ln -s /usr/local/mongodb/bin/mongo /bin/mongo
这样一来 不管在哪个目录下 如果想要进入MongoDB的shell 只需要打"mongo"命令就可以了
使用mongoose连接mongodb(转载文章)的更多相关文章
- 在express中使用Mongoose连接MongoDB
为何要学Mongoose? Mongoose是MongoDB的一个对象模型工具,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单. 0.安装 ...
- mongodb学习(3)--- NodeJs使用mongoose操作mongodb
转载: https://cnodejs.org/topic/50c145ed637ffa4155c7eaee 首先对于以下错误说明(有写 db.close): Error: db object alr ...
- 2. node接口搭建--连接MongoDB数据库 (参考https://blog.csdn.net/ncepu_Chen/article/details/98725104#_337)
1.使用mongoose连接MongoDB数据库 npm install mongoose 2.新建文件夹config存放数据库地址 3.安装MongoDB
- MONGOOSE – 让NODE.JS高效操作MONGODB(转载)
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...
- mongodb replica set 和 nodejs中使用mongoose连接replica
一.mongodb replication 介绍 官网上的第一句话就是Replication is the process of synchronizing data across multiple ...
- NodeJS连接MongoDB和mongoose
1.MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.是世界上目前用的最广泛的nosql数据库 2.noSql 翻译过来 not o ...
- Node.js:连接 MongoDB
ylbtech-Node.js:连接 MongoDB 1.返回顶部 1. Node.js 连接 MongoDB MongoDB是一种文档导向数据库管理系统,由C++撰写而成. 本章节我们将为大家介绍如 ...
- node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)
最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. Mongoose是在node.js ...
- TCP同步与异步,长连接与短连接【转载】
原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896 这是今天看到的一篇讲到T ...
随机推荐
- day041 前端HTML CSS基本选择器(未整理完毕)
标签: <b> :加粗 <i> :倾斜体 <u>: 下划线 <s>: 删除线 <p>:段落 <h1> - <h6> ...
- ORM版学员管理系统1
ORM版学员管理系统 班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = m ...
- Docker小白从零入门到实战系列【二】
1.安装好Centos 7 2.关闭SELINUX sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/configsetenfo ...
- python中处理.db文件借助navicat
navicat premium 12 中可以点击“连接” --sqllite 然后选择.db等文件导入 即可再导成..csv等格式.
- NAND Flash vs NOR Flash
Avinash Aravindan reference:https://www.embedded.com/design/prototyping-and-development/4460910/2/Fl ...
- HihoCoder - 1483 区间最值
给定n个数A1...An,小Ho想了解AL..AR中有多少对元素值相同.小Ho把这个数目定义为区间[L,R]的价值,用v[L,R]表示. 例如1 1 1 2 2这五个数所组成的区间的价值为4. 现在小 ...
- nginx——防盗链功能
我们经常会看到在浏览某一图片时会弹出一“403权限禁止”错误,这说明有可能正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链技术.那么怎样才能不让自己的网站受害呢? 下面我来介 ...
- Strict Standards: Declaration of UserModel::toJSON() should be compatible with that of BaseModel::toJSON()
使用php报了这个错误: 错误的意思是: 严格标准: usermodel中的 toJSON() 方法 应该 同 BaseModel中的toJson() 方法是兼容的. php要求 子类的方法如果同父 ...
- REST easy with kbmMW #20 – OpenAPI and Swagger UI
即将推出的kbmMW更新不仅是一些bug修正,同时将包含一个新的主要功能:客户端存根生成器框架. 那什么是客户端存根生成器框架呢? 他是一个基于kbmMW smart services,可以生成由各种 ...
- HDU 6045 17多校2 Is Derek lying?
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=6045 Time Limit: 3000/1000 MS (Java/Others) Memory ...