Mac搭建redash开发环境使用MongoDB源(四)

MongoDB

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组
(留给自己看。

安装

不想让brew安装的时候updating可以conrtol+c取消,然后就回到安装进程了
brew install mongodb
Error: No available formula with the name "mongodb"在这里插入图片描述直接报错,查了一下,我慌了…
原因:MongoDB不再是开源的了,并且已经从Homebrew中移除 #43770,但是mongodb-community是开放的

看来还是得上官网看教程,好吧以我目前的网络环境打开官网是不可能了,
可以参考github主页给了新的安装提示:https://github.com/mongodb/homebrew-brew,是我想多了,github能不能上也要看网络心情…

这个破网真是太耽误事了,本来几秒能搞定的,非要查一下别的解决办法,越差坑越多。。。lj

正确的安装

查到解决办法:
设定: brew tap mongodb/brew
安装: brew install mongodb-community(开始了龟速安装)在这里插入图片描述

启动:

方法一:
使用brew Starting the mongodb-community Server
启动brew services start mongodb-community
关闭brew services stop mongodb-community

方法二:
在用户根目录下使用如下命令
open ~/.bash_profile
添加如下变量
export PATH=/usr/local/Cellar/mongodb-community/4.2.5/bin:${PATH}}
因为我已经在.zshrc里添加过source .bash_profile,所以保存之后环境就生效了

在启动mongo之前,需要创建一个目录,为mongo默认的数据写入目录
注:默认目录为根目录下的data/db,目前mac系统已经不让在根目录下创建文件夹了,所以我们在user这一层创建

mkdir data/db
然后给刚刚创建的目录以可读可写的权限
chown `id -u` /data/db

先启动MongoDB服务
mongod --dbpath ~/data/db
再打开MongoDB的shell
mongo

这里我有个疑问,mongod.conf文件里给出了dbpath,不能直接改了这个路径到/User/data/db么,我试了一下改了还是不能用mongod直接运行,这样的话岂不是在/User/data/db和/usr/local/var/mongodb有两套data了么。用brew services start mongodb-community启动就是进入了/usr/local/var/mongodb,不对我好像明白了,既然我是用brew安装的就应该用人家已经建好的data啊…先就这样吧

关闭
use admin;
db.shutdownServer();

MongoDB命令

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

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

3、建表和删表
建表collection
db.createCollection('test');
查看
show collections;
db.test.insert({id:1,name:'aaa'},{id:3,name:'c'});//可以直接插入数据,不需要先建表
db.test.drop();//删除myTable这个数据表

4、单表的增删改
db.test.insert({id:1,name:'bb'});//新增
db.test.update({name:'bb'},{$set:{id:2}});//修改
db.test.remove({name:’bbb'});//删除

5、查询
db.test.find();//查询myTable中的所有数据
db.test.find().sort({id:1});//根据age升续
db.test.find().count();//查询
db.test.find({"id":1});//查询单一条件

6、创建用户
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})//创建超级用户
show users//查看当前库下的账户
db.dropUser(“admin”)//删除用户
db.auth("admin","123456")//重启具有认证的mongodb数据库后登陆
mongo 127.0.0.1:27017/admin --username root --password 123456//重新登录

redash使用MongoDB

添加源

在这里插入图片描述
官网贴出来了连接方法,但我试了一下怎么不好使呢,想google一下怎么连,结果败于网络…
啥网页都打不开了,效率急剧下降,

填了名称、连接串mongodb://localhost:27017、数据库然后报错了->
在这里插入图片描述
db_connection是个啥,google一下没结果,

找BUG

思来想去只能是源码里的东西了,果然在mongodb.py里找到了这个玩意儿
在这里插入图片描述
哈哈哈哈这个飘红的是什么玩意儿,自己改一下就好了。
我已经把这个问题提交给redash论坛了,看看官方的大佬怎么说。

写于------2020.4.17------开始
官方已经在github上修改了这个错误,而且是在三天前,太贱了都没通知我一下哈哈哈哈哈哈
在这里插入图片描述写于------2020.4.17------结束

另外,添加源的时候要指定数据库。

QUERY

之后就可以愉快的查询了

mongodb是非关系型数据库,不像mysql,postgresql那些,
mongodb存的是与json结构一样的文档,表中的每一条记录都可以结构不同,
所以查询需要按照json的结构(又得学习了)

在这里插入图片描述
这里只是个简单的测试,日后再试试别的查询吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值