部分操作查询自:https://itbilu.com/database/mongo/V1C60_md.html
因为学校最近的课设需要用到mongodb,之前从来没有使用过,所以粗略学习了一下,mongodb的安装使用之前讲过了:http://blog.csdn.net/sinat_34734636/article/details/78704397,这次加上了可视化工具,使用的robomongo,网上的安装教程很多,这里就不说了。
总结
1.向mongo中传入文件
mongoimport –db tianchi –type csv –headerline –ignoreBlanks –file F:/TianChiAlogrithm/fresh_comp_offline/tianchi_fresh_comp_train_item.csv
–db:将文件传入的数据库
–type:传入文件的类型,导入的格式默认json
–headerline:将文件中第一行的值作为键值
–ignoreBlanks:忽略文件中的空值
传入的文件可以通过
show dbs
use tianchi
查看
因为需要python进行操作,在使用python对mongo进行输入读出和写入操作的代码如下:
import pymongo
import pandas as pd
from pandas import DataFrame as df
import numpy as np
# mongodb服务的地址和端口号
mongo_url = "127.0.0.1:27017"
# 连接到mongodb,如果参数不填,默认为“localhost:27017”
client = pymongo.MongoClient(mongo_url)
#连接到数据库DATABASE
DATABASE = "tianchi"
db = client[DATABASE]
#连接到集合(表):tianchi.COLLECTION
def read_mongofile(COLLECTION):
db_coll = db[COLLECTION]
search_res = db_coll.find()
data = df(list(search_res))
return data
# 将dataframe数据存储到mongodb中
def write_dateframe2mongo(csvfile, COLLECTION):
mydb = client.DATABASE
myCollect = mydb.COLLECTION
column = csvfile.columns
length = csvfile.shape[1]
csv_reader = np.array(csvfile)
for i in range(len(csv_reader)):
myCollect.insert([{
'_id': i,
}])
for i in range(len(csv_reader)):
for j in range(length):
myCollect.update({'_id': i},
{"$set": {column[j]: str(csv_reader[i][j])}}
)
导出mongo中自己建的数据库数据:
mongodump -h localhost:27017 -d tianchi -o F:/TianChiAlogrithm
-h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d: 需要备份的数据库实例,例如:tianchi
-o: 备份的数据存放位置,例如:F:/TianChiAlogrithm,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。MongoDB数据库恢复
mongorestore -h dbhost -d dbname --dir dbdirectory
-h: MongoDB所在服务器地址
-d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
–dir: 备份数据所在位置,例如:/home/mongodump/itcast/
–drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
-d :数据库名
-c :collection名
-o :输出的文件名
–type : 输出的格式,默认为json
-f :输出的字段,如果-type为csv,则需要加上-f “字段名”