设为首页 收藏本站
查看: 2171|回复: 1

[经验分享] mongodb安装&简单使用

[复制链接]

尚未签到

发表于 2017-2-25 11:13:53 | 显示全部楼层 |阅读模式
  转自Mac下使用brew安装mongodb,按着步骤已成功安装。

brew常用命令
  1、更新brew本身



1 brew update
  2、使用brew安装软件



1 brew install soft_name
2 // soft_name为你所要安装软件的标志,如使用brew安装git
3 brew install git
  3、使用brew卸载软件



1 brew uninstall soft_name
2 // soft_name为你所要卸载软件的标志,如使用brew卸载git
3 brew uninstall git
  4、显示使用brew安装的软件列表



1 brew list
  5、更新软件



1 brew upgrade        // 更新所有使用brew安装的软件
2 brew upgrade git    // 更新某个使用brew安装的软件
  6、查看哪些软件需要更新



1 brew outdated
  7、查找软件



1 // 当你记不清软件的名字的时候,你可以使用search,只需要写去几个字母,他就会帮你联想,并把所有可能的结果输出给你
2 brew search
  8、查看使用brew安装的东西,安装在哪里



1 brew --cache

mongoDb安装
  1、有了brew,我们安装mongodb就变得很简单了:



brew install mongodb
DSC0000.png

  2.之后将我们的mongodb升级一下,确保版本最新的



1 brew upgrade mongodb
  现在就启动mongo你并不会成功
  3、在启动mongo之前,我们需要创建一个目录,为mongo默认的数据写入目录



sudo mkdir -p /data/db
  4、然后给刚刚创建的目录以可读可写的权限



sudo chown `id -u` /data/db
  5、修改目录



1 // /data/db 目录是mongo的默认目录,如果你想使用其他目录,可以使 --dbpath 参数
2 mongo --dbpath dir_name
3 // dir_name 为你的目录名字
  现在,你可以放心的启动mongodb了,执行下面的命令:mongod、mongo
DSC0001.png

  如果有一天你发现你的数据库突然启动不了了,可能是你为正常关闭导致的,你可以删除掉mongod.lock文件,然后重新启动,如果还是不可以,你可以查看一下进程,然后杀掉:



ps -aef | grep mongo
  然后根据进程ID杀掉进程:



1 sudo kill 6955
  重新启动mongodb服务,即可:mongod
  我们可以新开一个终端窗口连接数据库并试着查看所有的数据库:



1 mongo
2
3 show dbs
DSC0002.png

  最后,像大家推荐一个连接mongo的客户端可视化工具 robomongodb,它是跨平台的工具,我们可以下载Mac版的,安装后打开,界面是这个样子:
DSC0003.png

  点击create按钮,创建新的连接,会弹出一个连接的配置框,里面有一些默认的参数,我们保持默认,直接点击save,再点击connect按钮就好了:
DSC0004.png

  下图是点击connect连接数据库成功后的界面
DSC0005.png


mongoDb常用语句

1、查询库、查询表
show dbs  —  查询所有的数据库
show collections   —  查询当前数据库下的所有数据表

2、建库和删库
use myDbs  —  建立一个名为myDbs的数据库,当这个库存在时则是切换到这个数据库中去
use myDbs
db.dropDatabase();  —  这两句是删除这个数据库

3、建表和删表
表操作都是要先到一个数据库中去,通过use方法
db.myTable.insert({name:’hf’,age:20});  —  在mongodb中在插入数据时即创建了改表,此时创建的是名为myTable的数据表
db.myTable.drop();  —  删除myTable这个数据表

4、单表的增删改
db.myTable.insert({name:’hahaha’,age:12});  —  新增
db.myTable.update({name:’hf’},{$set:{age:25}})  —  修改,此处的操作相当于关系数据库中的 update myTable set age = 25 where name = ‘hf’
db.myTable.remove({name:’hf'});  —  删除,此处相当于关系数据库中的 delete myTable where name = ‘hf’

5、查询
db.myTable.find();  —  查询myTable中的所有数据
db.myTable.find().sort({age:1})  —  根据age升续
db.myTable.find().count();  —  查询


mongoose及其基本使用

  由于mongodb上手方便,所以经常作为nodeJS建站的数据库,而mongoose则是NodeJS中操作mongodb一个工具库。在mongoose中存在这么几种链接、调用方式主要包括Schema、Model、Entity这3种操作类,其中Schema则是以数据类型为形式的实体,它不具备操作数据库的能力,但是它定义了操作数据表中元素的名称和类型;而Model则是单个表的实体,通过表的名字以及Schema中标注的类型将一个表进行实例化;那么最后一个Entity可以认为是表中单行的实例对象,可以对单行进行简单的新增删改查的操作。
1、建立链接和Schema、Model



var mongoose = require(‘mongoose’);
/*开始获取数据库连接,此处部分为固定写法,
*其中myinfo是要操作数据库的名称*/
var con = mongoose.connect(‘mongodb://localhost/myinfo');
/*获取mongoose全局的Schema对象,方便对多个表进行实例化*/
var sche = mongoose.Schema;
/*构建所需表的Schema,此处就构建了一个stu表的文件*/
var stuSchema = new sche({
name:String,
age:Number
});
/*构建表所需的模型 Model*/
var stuModel = con.model(’Stu’,stuSchema);
  2、新增
  方式一:



/* 新增,新增操作需要构建一个表单行实例*/
var stuEntity = new stuModel({name:’hf’,age:2});
stuEntity.save(function(err){…});
  方式二:



/* 新增,通过Model新增*/
var json = {name:’hf’ , age:1};
stuModel.create(json , function(error){…})
  2、修改



var param = {name:’hf’};
var update = {$set:{name:’sfa’,age:26}};
stuModel.update(param , update , function(error){...})
  3、删除



var param = {name:’hf’};
stuModel.remove(param , function(error){...})
  3. 导入导出数据库
  导入:



mongorestore -h host -d dataName --dir=path
  -h:指明数据库宿主机的IP    -u:指明数据库的用户名    -p:指明数据库的密码     -d:指明数据库的名字,当然这个名称也可以和导出时候的不一样
  比如 DSC0006.png
  导出:



>mongodump -h dbhost -d dbname -o dbdirectory
  -h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017   -d:需要备份的数据库实例,例如:test  -o:备份的数据存放位置(不填的话为根目录)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346989-1-1.html 上篇帖子: 前端学习小结 下篇帖子: 解放双手:如何在本地调试远程服务器上的Node代码
累计签到:544 天
连续签到:1 天
发表于 2018-5-31 08:40:27 | 显示全部楼层
谢谢楼主分享

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表