insert into 多条数据_跟我快速学数据存储:MongoDB应用

MongoDB能够表示较为复杂的非结构化数据。例1演示了在MongoDB中,对GDP数据的增加、删除、修改、查找等操作。

例1:MongoDB数据库操作示例

import pymongo

moclient =   pymongo.MongoClient("mongodb://localhost:27017/")

modb = moclient["xinxisy"] #获得数据库

gdp = modb["gdp"] #获得集合

#用列表定义要插入的多条数据,使用JSON来表示每条记录。

gdpdata =[

         {"year":2019,"gdp":990865.10,

         "primary_industry":70466.70,

         "secondary_industry":386165.30,

         "third_industry":534233.10,

          "province":{"广东":107671.07,

                  "江苏":99631.52,

                  "山东":71067.5

                  }},

         {"year": 2018, "gdp": 900309.00,

         "primary_industry": 64734.00,

         "secondary_industry": 366001.00,

         "third_industry": 469575.00,

          "province":{"广东":97277.77,

                  "江苏":92595.4,

                  "山东":76469.7

          }}

         ]

gdp.delete_many({}) #{},表示删除所有记录

gdp.insert_many(gdpdata)

modoc=gdp.find().sort("year",-1)  #-1为降序,1或者默认为升序

for x in modoc:

      print(x) # x['province']['广东']可以访问”广东“对应的GDP

query = { "year": 2018 }

newvalue = { "$set": { "third_industry": 469575.01 }}

gdp.update_one(query, newvalue)

query = {"year": 2018}

modoc = gdp.find(query) #查询集合中指定条件的数据

for x in modoc:

      print(x['third_industry'])

query = {"year": 2019}

gdp.delete_one(query)

for x in gdp.find():  

    print(x)

moclient.close()

下面对代码进行解释:

(1)import pymongo:导入用于Python开发MongoDB的pymongo模块。

(2)pymongo.MongoClient("mongodb://localhost:27017/"):根据给定的主机和端口连接到Mongodb数据库。也可以将(1)改为:from pymongo import  MongoClient,再将(2)改为:moClient = MongoClient("mongodb://localhost:27017/")

(3)modb = moclient["xinxisy"]:获得指定名字的数据库,如果数据库不存在,则新建。

(4)gdp = modb["gdp"]:获得指定的集合。这里所说的集合含义与数据库的表的概念类似。如果集合不存在,则新建。对集合的操作,使用集合名.方法名(参数)来进行。

(5) gdp.delete_many():删除集合中的多条记录。参数{}表示删除所有记录。参数使用关键字值对,表示删除指定条件的记录,例如:{"year": 2019},表示删除所有year为2019的记录。

(6)gdp.insert_many(gdpdata) :向集合中插入多条记录。如果只想插入一条记录,则使用insert_one(gdpdata),要求gdpdata是一个JSON数据,不能是列表。

(7)gdp.find().sort("year",-1):find()是获得集合中所有的记录。sort()方法是对某个关键词进行排序,其中-1表示降序,1表示升序。查询处理的记录后,可以通过for循环逐个读取。

(8)gdp.update_one(query, newvalue):根据条件,对集合中的记录进行更新。其中参数query表示更新记录的条件,newvalue表示更新的关键字值对。

(9)gdp.delete_one(query):删除满足条件的一条记录。

dd83e26d6486f1d74b58e54f7d396c3c.pngEND

撰稿 | 谢景明

编辑 | 秦慧

审核 | 谢景明、冯敬益

1e0615efc6874eb544f53d2755214640.png abd2a81d13a19898e6d4cb3ce471526b.png

微信号:xinxisuyang

-扫码关注我们- 76758cc7fd62dd7c8e86bdc1a4f2f040.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值