centos 下mongodb 安装使用

下载安装mongodb(以下命令一次执行)

>  curl -O  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
>  cd /mongodb 
>  tar -xf mongodb-linux-x86_64-3.0.6.tgz
>  mkdir /usr/local/mongodb 
>  cd /usr/local/mongodb/ 
>  cp -r /mongodb/mongodb-linux-x86_64-3.0.6/bin/ . 
>  mkdir etc  
>  mkdir log    
>  mkdir -p data/db  
>  vim etc/mongodb.conf**

++++mongodb.conf中 ++++

dbpath=/usr/local/mongodb/data/db/
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
fork=true
auth=true
bind_ip=0.0.0.0
> vim /etc/profile

++++profile 中添加++++

export PATH=/usr/local/mongodb/bin:$PATH

//设置关闭和开启mongodb的全局指令

> alias stopmdb='mongod--dbpath=/usr/local/mongodb/data/db/ --shutdown'
> alias startmdb='mongod -f /usr/local/mongodb/etc/mongodb.conf'

//mongodb默认不需要账号密码,为安全需要添加用户密码及认证
//开启mongdb后

>   mongo
>   use admin
>   db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"readWriteAnyDatabase",db:"admin"}]})

//开启验证

> cd /usr/local/mongodb/bin 
> mongod --dbpath '/usr/local/mongodb/data/db'  --auth

//重启mongodb

> stopmdb 
> stratmdb

//查看是否开启验证

> mongo 
> show dbs

2019-10-08T19:48:35.285+0800 E QUERY Error: listDatabases failed:{
“ok” : 0,
“errmsg” : “not authorized on admin to execute command { listDatabases: 1.0 }”,
“code” : 13
}

//验证登录

> use admin
> db.auth("root", "123456")
> show dbs

++结果++
admin 0.078GB
local 0.078GB
++++

python 连接mongodb

> pip install pymongo
myclient = pymongo.MongoClient("mongodb://mongodb服务地址:27017/")


# 验证登录
db = myclient.admin
db.authenticate("root", "123456")
# 查看所有库
dblist = myclient.list_database_names()
print (dblist)

+++++print 结果+++++++
['admin', 'mrtest', 'local']
+++++++

Django 连接mongodb

目前官方正版django对nosql支持并不好,mongoengine是其中一种连接方式,且并不支持admin/xadmin;

据说有django-nonrel的django分支可无痛使用 Django+xAdmin+MongoDB;但是其貌仅支持python2及django1.6及以下的版本,遂舍弃!!!

mongoengine连接mongodb如下

pip install mongoengine

项目setting文件中,DATABASES配置与mongodb连接无关,按业务需要使用或置空

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

from mongoengine import connect

#connect('admin', host='', port=27017,username='root', password='123456')
client = connect('mrtest', host='', port=27017)
d = client.admin  #权限验证
d.authenticate("root", "123456")

或者

from mongoengine import connect
 
connect(
    db="mrtest",  # 要操作的数据库
    alias='default',  # 必须定义一个default数据库
    host="",
    port=27017,
    username="root",
    password="123456",
    authentication_source="admin", # 进行身份认证的数据库
)

一个使用mongoengine的简例

model.py

import mongoengine

class MrTest(mongoengine.Document):
    hhh = mongoengine.StringField(max_length=30)
    name = mongoengine.StringField(max_length=30,)
    style = mongoengine.StringField(max_length=30,)

url.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('testmdb/', testmdb, name='testmdb'),
]

views.py

from django.http import JsonResponse

def testmdb(request):
    from apptest.models import MrTest
    tobj = MrTest.objects.filter()[0]
    return JsonResponse({'test':'adsdasd','name':tobj.name,'style':json.dumps(tobj.style)})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值