Python+Centos7下安装mongodb&使用mongo

安装MongoDB

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.5.tgz
  • 解压&安装
tar zxvf mongodb-linux-x86_64-3.6.5.tgz 
mkdir /usr/local/mongodb
mv mongodb-linux-x86_64-3.6.5/* /usr/local/mongodb/
mkdir data logs
  • 运行
bin/mongod --dbpath data/ --logpath logs/mongpdb.log -fork
#mongod 用于管理服务器端,  命令行启动需要指定其data文件夹路径和日志路径。

运行成功后:

  • 设置开机启动切换到mongodb/bin目录下
cd /usr/local/mongodb/bin

添加mongdb.conf,添加以下几行

port=27017
dbpath=/usr/local/mongodb/data
logappend=true
fork=true
logpath=/usr/local/mongodb/logs/mongpdb.log

编辑开机启动文件/etc/rc.d/rc.local,添加以下代码

/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
  • 设置全局变量
echo "export PATH=$PATH:/usr/local/mongodb/bin" >> ~/.bashrc
source ~/.bashrc
  • 连接测试
mongo

如果能显示如下信息,代表配置成功

Python连接mongo

  • 首先安装pymongo
pip install pymongo
  • Python Shell下测试

建立连接

import pymongo
from pymongo import MongoClient
client = MongoClient('localhost',27017)

访问数据库

当前所使用的数据库test的users

db = client.test
users = db.users
#或者db = client['users']

插入文档

文档就是一行,集合就是一个表

一个insert_one()

user1 = {"name":"li8","age":8}
rs = users.insert_one(user1)
print('one insert:{0}'.format(rs.inserted_id))

多个 insert_many()

user2 = {"name":"li9","age":9}
user3 = {"name":"li10","age":10}
user4 = {"name":"li11","age":11}
user5 = {"name":"li12","age":12}
new_result = users.insert_many([user2, user3, user4, user5])
print('Multiple users: {0}'.format(new_result.inserted_ids))

检索文档

一个find_one()

usertmp = users.find_one({"age":33})
print(usertmp)

多个find()

rs = users.find({'age': 33})
for tmp in rs:
    print(tmp)

统计数量

print(users.count())

加索引

from pymongo import ASCENDING, DESCENDING
print(users.create_index([("age", DESCENDING), ("name", ASCENDING)]))

数据导出

mongoexport -d test -c users --csv -f name,age  -o e:\python\users.csv

数据导入

mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
参数说明:
-d :数据库名
-c collection名
--type :导入的格式默认json
-f :导入的字段名
--headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
--file :要导入的文件

本文作者:Abbey

本文链接:https://www.abbeyok.com/archives/26

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

PyOne - 基于Python的one... <<
0 条评论

请先登陆注册

已登录,注销 取消