mongodb本地插入数据的基本操作

#!/usr/bin/env python

#-*- coding:utf-8 -*-

"""在python脚本中,将文件导入到数据库中

"""

from pymongo import MongoClient

MONGO_URL = "mongodb://localhost:27017" #how to hnow

MONGO_DB = "test"

MONGO_TABLE = "day1"

client = MongoClient(MONGO_URL) # 生成mongodb对象

db = client[MONGO_DB]

## 定义插入数据的函数

def save_to_mongo(data):

if db[MONGO_TABLE].insert(data):

print("成功储存到MongoDB", data)

return True

return False

data = {'name':'mike', 'score':99}

save_to_mongo(data)

2.使用csv中的DictReader函数读取

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/10/21 11:31

# @Author : deli Guo

# @Site :

# @File : csv文件存入mongoDB.py

# @Software : PyCharm

# 导包

from pymongo import MongoClient

import csv

# 创建连接MongoDB数据库函数

def connection():

# 1:连接本地MongoDB数据库服务

conn=MongoClient("localhost")

# 2:连接本地数据库(guazidata)。没有时会自动创建

db=conn.guazidata

# 3:创建集合

set1=db.data

# 4:看情况是否选择清空(两种清空方式,第一种不行的情况下,选择第二种)

#第一种直接remove

set1.remove(None)

#第二种remove不好用的时候

# set1.delete_many({})

return set1

def insertToMongoDB(set1):

# 打开文件guazi.csv

with open('guazi.csv','r',encoding='utf-8')as csvfile:

# 调用csv中的DictReader函数直接获取数据为字典形式

reader=csv.DictReader(csvfile)

# 创建一个counts计数一下 看自己一共添加了了多少条数据

counts=0

for each in reader:

# 将数据中需要转换类型的数据转换类型。原本全是字符串(string)。

each['index']=int(each['index'])

each['价格']=float(each['价格'])

each['原价']=float(each['原价'])

each['上牌时间']=int(each['上牌时间'])

each['表显里程']=float(each['表显里程'])

each['排量']=float(each['排量'])

each['过户数量']=int(each['过户数量'])

set1.insert(each)

counts+=1

print('成功添加了'+str(counts)+'条数据 ')

# 创建主函数

def main():

set1=connection()

insertToMongoDB(set1)

# 判断是不是调用的main函数。这样以后调用的时候就可以防止不会多次调用 或者函数调用错误

if __name__=='__main__':

main()

3.超详细的利用python操作MongoDB数据库

class MyMongoDB: #创建一个类

def __init__(self, database, collection): #利用初始化的方法输入要操作的数据库(database),集合(collection)

import pymongo #导入pymongo模块

self.connet = pymongo.MongoClient() #连接到虚拟机上的mongo数据库

self.database = self.connet[database] #选择需要操作的数据库名称

self.collecttion = self.database[collection] #选择需要操作的集合名称(如果集合名不存在会自动创建)

def insert(self, data, onlyone=True): #输入需要添加的数据(data),onlyone用来控制增加数据是单条还是多条

if onlyone: #控制数据为单条

self.collecttion.insert_one(data) #向集合中增加单条数据

else: #否则为多条数据

self.collecttion.insert_many(data) #向集合中增加多条数据

def find(self, query=None, onlyone=True): #输入查询的条件(query,默认为None指查询全部数据),使用onlyone控制查询的数据是单条还是多条

if onlyone: #默认onlyone为True查询一条数据

result = self.collecttion.find_one(query) #将查询的结构用result变量来接收

return result #返回result

else: #onlyone为False查询多条数据

result = self.collecttion.find(query) #将查询的结构用result变量来接收

return list(result) #返回result,并转换成列表

def updata(self, data, new_data, onlyone=True): #指定需要修改的数据(data),修改后的数据(new_data),onlyone控制修改单条还是多条

if onlyone: #当onlyone为真

self.collecttion.update_one(data, {'$set': new_data}) #修改单条数据,使用'$set'表示指定修改数据否则会使数据库中所有数据被新数据覆盖

else: #当onlyone为假

self.collecttion.insert_many(data, {'$set': new_data}) #修改多条数据,使用'$set'表示指定修改数据否则会使数据库中所有数据被新数据覆盖

def delete(self, data, onlyone=True): #删除数据,data需要删除的数据,使用onlyone控制删除的条数

if onlyone:

self.collecttion.delete_one(data) #删除一条

else:

self.collecttion.delete_many(data) #删除多条

wl = MyMongoDB('stu', 'wl') #指定我们需要操作的数据库为stu数据库,需要操作的集合为wl集合

wl.insert([{'name': 'cx', 'profession': 'bigdata', 'age': 18},{'name': 'fhb', 'profession': 'bigdata', 'age': 21}], onlyone=False)

#向wl集合中插入两条数据,控制onlyone为False,告知insert函数我们需要插入多条数据

print(wl.find({'name': 'cx'})) #在inset中为我们已经增加了数据,此时查询名字为cx学生信息并打印

wl.updata({'profession': 'bigdata'}, {'profession': 'English'}) #将学生专业为大数据的改成英语专业

print(wl.find(onlyone=False)) #控制onlyone=False,打全部数据

python保存数据db_python存储数据到mongodb相关推荐

  1. ps保存切片遇到存储数据太大的问题和常用快捷键

    为什么80%的码农都做不了架构师?>>>    ps保存切片遇到存储数据太大的问题和常用快捷键 保存多个切片,选定多个切片快捷键Shift+单击 切片复制快捷键Ctrl+Alt+单击 ...

  2. python存储数据list_Python存储数据的方式

    在Python开发中,数据存储.读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件.csv文件.MySQL数据库.Redis数据库以及Mongdb数据库等. 1. json文 ...

  3. android平台上持久化存储3种手段_Android 数据持久化==存储数据的五种方法

    1.使用SharedPreferences存储数据 2.文件存储数据 3.SQLite数据库存储数据 4.使用ContentProvider存储数据 5.网络存储数据 第一种: 使用SharedPre ...

  4. mongodb 持久化 mysql_scrapy数据持久化存储(MySQL、MongoDB)

    1.在setting.py中定义相关变量 #定义mysql相关变量 MYSQL_HOST = '127.0.0.1' MYSQL_USER = 'root' MYSQL_PWD = '123456' ...

  5. python保存任意object的数据到本地(python的序列化与反序列化)

    这里主要使用pickle这个库: python对象保存到本地(序列化) pickle.dump(python对象, open("文件名", 'wb')) # 序列化 从本地读取py ...

  6. python 大量使用json 存储数据时,格式化输出的方式

    import json, pprint dic = {'name': 234, 'user_name': 'yan xia ting yu ', 'list': ['ds', 'a', 2], '你好 ...

  7. Python保存dict字典类型数据到Mysql,并自动创建表与列

    主要是工具类,使用pymysql来创建表与SQL 示例代码 import pymysqlclass UseMysql(object):def __init__(self, user, passwd, ...

  8. sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)

    原生sd.js---------------------------------------------------------------- const API_ROOT_URL = "h ...

  9. python爬取京东手机数据_用scrapy爬取京东的数据

    本文目的是使用scrapy爬取京东上所有的手机数据,并将数据保存到MongoDB中. 一.项目介绍 主要目标 1.使用scrapy爬取京东上所有的手机数据 2.将爬取的数据存储到MongoDB 环境 ...

最新文章

  1. 网络异常_网络异常易频发,流量分析来排查
  2. PCL点云特征描述与提取(4)
  3. 防火墙产品原理与应用:NAT支持的特殊协议
  4. 1分钟搭建极简mock server
  5. pygame简单的俄罗斯方块游戏和简单的打字游戏
  6. 指针系统学习7-返回指针值的函数
  7. Insyde uefi 隐藏设置_安卓福利,手机桌面图标隐藏,找应用按字母轻松搞定!
  8. IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权
  9. C语言版数据结构及算法_快速排序
  10. Java(TM) platform SE binary 占用cpu过高
  11. BOM中的那点事-window(二)
  12. Java、JSP网上购物管理系统
  13. 淘宝店铺新手:实战提升流量销量经验
  14. 程序员职业规划(转)
  15. 2019/11/08 校内模拟
  16. MongoDB的基础指令和练习笔记
  17. [深度学习基础]正则化
  18. scp 返回 protocol error: unexpected newline
  19. 在MFC中怎么样让控件的大小随着主窗体大小改变而改变
  20. 【直播精彩回顾】高性能计算,让数据拥有无限可能!

热门文章

  1. js中的总结汇总(以后的都收集到这篇)
  2. html template--(来自网易)
  3. [Hadoop]在Windows上安装Hadoop
  4. 十二、文件上传与下载
  5. 3-1-Servlet技术
  6. 考研计算机网络,2020计算机专业考研的计算机网络部分知识点
  7. cli vue 外部js 引入 文件_javascript - vue cli构建的项目中,vue组件里怎么引入外部js文件里的方法...
  8. 职教云python题和答案_智慧职教云课堂Python程序设计基础题目及答案
  9. 设计灵感|C4D卡通角色设计作品,你想要的模型集设都有
  10. 梦幻粉色空间手机背景素材,爱梦想的设计师