前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongodb的基本使用以及pymong的用法

mongodb的基本使用以及pymong的用法

作者头像
DC童生
发布2019-11-27 22:45:39
9660
发布2019-11-27 22:45:39
举报
文章被收录于专栏:机器学习原理机器学习原理

MongoDB 的安装

MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。

MongoDB 支持多种平台,包括 Windows、Linux、Mac OS、Solaris 等,在其官方网站 https://www.mongodb.com/download-center 均可找到对应的安装包。

MongoDB 的使用

代码语言:javascript
复制
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> db.runoob.insert({"name":"菜鸟教程"})

>db.site2.find()
{ "_id" : 1, "name" : "RUNOOB", "cn_name" : "菜鸟教程" }
{ "_id" : 2, "name" : "Google", "address" : "Google 搜索" }
{ "_id" : 3, "name" : "Facebook", "address" : "脸书" }
{ "_id" : 4, "name" : "Taobao", "address" : "淘宝" }
{ "_id" : 5, "name" : "Zhihu", "address" : "知乎" }
> show collections
TutorialItem
> db.TurorialItem.find()

pymongo的用法

创建表
代码语言:javascript
复制
#!/usr/bin/env Python
# coding=utf-8
import pymongo
#连接数据库
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
#创建数据库
# mydb = myclient["rundb"]

#列出数据库的名称
# dblist = myclient.list_database_names()
# print(dblist)
# # dblist = myclient.database_names()
# if "runoobdb" in dblist:
#   print("数据库已存在!")

#创建表或者集合
mydb = myclient['rundb']
mycol = mydb["sites"]
collist = mydb. list_collection_names()
print(collist)

#插入数据
mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"}

x = mycol.insert_one(mydict)
print(x)
print(x)

mylist = [
    {"name": "Taobao", "alexa": "100", "url": "https://www.taobao.com"},
    {"name": "QQ", "alexa": "101", "url": "https://www.qq.com"},
    {"name": "Facebook", "alexa": "10", "url": "https://www.facebook.com"},
    {"name": "知乎", "alexa": "103", "url": "https://www.zhihu.com"},
    {"name": "Github", "alexa": "109", "url": "https://www.github.com"}
]

x = mycol.insert_many(mylist)

# 输出插入的所有文档对应的 _id 值
print(x.inserted_ids)
mycol = mydb["site2"]

mylist = [
    {"_id": 1, "name": "RUNOOB", "cn_name": "菜鸟教程"},
    {"_id": 2, "name": "Google", "address": "Google 搜索"},
    {"_id": 3, "name": "Facebook", "address": "脸书"},
    {"_id": 4, "name": "Taobao", "address": "淘宝"},
    {"_id": 5, "name": "Zhihu", "address": "知乎"}
]

x = mycol.insert_many(mylist)

# 输出插入的所有文档对应的 _id 值
print(x.inserted_ids)
查询表
代码语言:javascript
复制
#!/usr/bin/env Python
# coding=utf-8
import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["rundb"]
mycol = mydb["sites"]

for x in mycol.find():
    print(x)

for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }):
  print(x)


#条件查询
myquery = {"name": "RUNOOB"}

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)

#高级查询

myquery = {"name": {"$regex": "^R"}}

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)

myresult = mycol.find().limit(3)

# 输出结果
for x in myresult:
    print(x)

scrapy爬虫存储到mongo数据库

代码语言:javascript
复制
class  MongoPipeline(object):
    def __init__(self,mongo_uri,mongo_db):
        self.mongo_uri = mongo_uri
        self.mongo_db = mongo_db

    @classmethod
    def from_crawler(cls,crawler):
        return cls(
            mongo_uri=crawler.settings.get('MONGO_URI'),
            mongo_db=crawler.settings.get('MONGO_DB')
        )
    def open_spider(self,spider):
        self.client=pymongo.MongoClient(self.mongo_uri)
        self.db=self.client[self.mongo_db]
    def process_item(self,item,spider):
        #将类名作为表名
        name=item.__class__.__name__
        self.db[name].insert(dict(item))
        return item
    def close_spider(self,spider):
        self.client.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB 的安装
  • MongoDB 的使用
  • pymongo的用法
    • 创建表
      • 查询表
      • scrapy爬虫存储到mongo数据库
      相关产品与服务
      云数据库 MongoDB
      腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档