千家信息网

mongodb中怎么安装和使用pymongo

发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,mongodb中怎么安装和使用pymongo,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1) mongodb的安装下载tgz解压后,
千家信息网最后更新 2024年11月29日mongodb中怎么安装和使用pymongo

mongodb中怎么安装和使用pymongo,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

(1) mongodb的安装

下载tgz解压后,需要添加相应的环境变量才能在终端直接启动mongod。

mongodb数据存储在/data/db中,需要手动创建目录树,同时mongod执行的时候如果权限不够(不能往/data/db写东西),需要改一下权限。

vim ~/.bashrcexport PATH="~/download/mongodb-linux-x86_64-ubuntu/bin:$PATH"mkdir -p /data/dbls -l / 查看data目录的权限,发现拥有者可写ls -l /data 查看db目录的权限,发现拥有者可写chown -R "liaohuqiang" /data data下的所有文件的拥有者改为自己 

(2) mongod的启动

之后就可以在终端上输入mongod,这个时候就启动了mongodb,但是这个时候是在终端运行着的,相当于一个前台进程,在这个终端你不能做其它操作。

可以使用--fork选项,开启后会回到终端交互,可以继续做自己的事。

fork表示以守护进程的方式启动mongodb,创建一个服务器进程。fork要配合logpath使用,表示日志信息输出到哪个日志文件。logappend表示以追加的方式写入日志文件。

当然还有别的启动方式,目前还没用到,暂时先不说。

mongod --fork --logappend ~/mongo.log --logappend

(3)mongo的使用

启动mongod后就可以在终端进入mongo进行相关数据库操作

show dbs 显示所有数据库use doctor 切换到某个数据库"doctor", 不切换的话默认使用testdb.dropDatabase() 删除数据库show collections 显示所有集合db.sample.drop() 删除集合db.sample.insert({name:"pilgrimHui", label:"1"}) 插入一行记录db.sample.insert({...}) 如果文档已存在,会更新_id,不存在则同insertdb.sample.find({...}) 查找满足条件的记录,简单的一些查询条件见下面db.sample.find({...},{field1:1, field2:1}) 只找出某些字段db.sample.find() 查找sample集合所有记录db.sample.remove({...},1) 删除满足条件的记录,参数1可选,代表只删除1个db.sample.remove({}) 删除sample集合的所有记录

(4) mongo里的update操作

db.collection.update(criteria, objNew, upsert, multi)criteria: 查询条件,理解为sql update语句where后面的objNew: 更新操作,理解为sql update语句set后面的upsert: 如果不存在查询到的记录,是否插入。默认false,不插入multi: 是否更新多条。默认false,只更新第一条。# 例如:把集合里所有记录的status改为0db.sample.update({"status": {$ne: 0} }, {$set: {"status":0}}, {multi: true})或者db.sample.update({"status": {$ne: 0} }, {$set: {"status":0}}, false,true)

(4) 几个查询操作符

$ne 不等$gt 大于$gte 大于等于$lt 小于$lte 小于等于$in和$nin 是否在指定数组中$all 是否全在指定数组中$or 将数组中的多个键值对或运算$slice:[1,2] 切片,取属性值(数组)的某几个$size 该属性值(数组)的长度$exists:true 选择该字段存在的记录$not 对任何查询操作符取非$regex 使用正则表达式匹配

(5) 几个更新操作符

{ $inc : { field : value } }{ $set : { field : value } }{ $unset : { field : 1} } { $push : { field : value } } 追加,field要是数组{ $pull : { field : value } } 和push相反{ $pop : { field : 1 } } 删除最后1个值{ $pop : { field : -1 } } 删除第1个值 { $currentDate: { : {$type:"date", ... } } 设定当前时间{ $rename: {:,:,...} } 重命名字段

(6) 用户权限设置

mongodb默认没有帐号登录,需要自己先添加帐号。

在admin数据库添加的帐号为管理员帐号,在其它数据库添加的帐号为普通用户

用户只能在用户所在的数据库登录,包括管理员。

管理员只能在admin登录认证后才能管理其它数据库。

6.1 添加管理员帐号

use admindb.system.users.find()

db.addUser('liaohuqiang','liaohuqiang') 添加管理员用户,mongodb版本不同,可能会报错,如果报错找不到addUser则

用下面这个

db.createUser( {  user: 'liaohuqiang',  pwd: 'liaohuqiang',  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

6.2 重新启动mongod

创建成功后重启mongod,这个时候开启连接可以带上--auth选项,代表验证用户权限。

mongod --fork --logappend ~/mongo.log --logappend --auth

6.3 认证登录

开启后,直接mongo进去操作会受限,可以mongo连接时授权登录;也可以连接进去后再认证。

mongo -u liaohuqiang -p --authenticationDatabase adminmysql -h ip -u root -p 乱入,对比一下mysql的连接mongouse admindb.auth('liaohuqiang', 'liaohuqiang')

6.4 关闭连接

认证登录后就可以像之前那样操作数据库了,操作完后可以在admin数据库关闭连接。

use admin db.shutdownServer() 关闭mongod

(7) pymongo的连接

import pymongoclient=pymongo.MongoClient('mongodb://username:password@ip')db=client['doctor']users=db["user"]result= list(users.find( {'role':1}, {'_id':0} ) ) 选多个result= users.find_one({"name":name}) 选单个users.insert_one({"name":name}) 插一个,会自动生成主键users.remove( {"name":name}, {"multi":True} ) 删多个users.update_one({'name':name},{'$inc':{'commitCount':1}}) 改一个

看完上述内容,你们掌握mongodb中怎么安装和使用pymongo的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

数据 数据库 数组 权限 用户 终端 帐号 登录 管理 管理员 更新 查询 时候 条件 认证 多个 字段 拥有者 操作符 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库创建表问题 软件开发怎么一直迷茫 数据库局部变量以什么开头 军训网络安全教育 中科曙光服务器怎么从机架上卸载 新兴的数据库水印溯源 怀旧服数据库加内格 word邮件数据库域没有姓名 sql一列重复对的数据库 数据库的三级体系结构是指和 数据库设置utf8 如何备份窗体数据库 网络安全和数据安全类公司 服务器硬盘休眠影响 学习网络技术好就业吗 统计jdbc数据库连接数量 马凡综合征全国数据库 眉山市从事软件开发的公司 数据库查询最高分和最低分的信息 网络安全的英文说法 网络安全共同体和安全 沙漠叛乱风暴怎么开服务器 我国坚持网络安全与信息化方针 邢台星友网络技术服务有限公司 徐汇区辅助软件开发答疑解惑 测试员和服务器管理Ibm 网络安全类工作要学什么专业 博图软件开发平台 广州宾果游戏网络技术有限公司 连接数据库编码
0