mongodbの基本的な使用とpymongの使い方
4623 ワード
MongoDBのインストール
MongoDBはC++言語で作成された非関係型データベースであり、分散型ファイルストレージに基づくオープンソースデータベースシステムであり、そのコンテンツストレージ形式はJSONオブジェクトに類似しており、そのフィールド値には他のドキュメント、配列、ドキュメント配列を含めることができ、非常に柔軟である.
MongoDBはWindows、Linux、Mac OS、Solarisなど、さまざまなプラットフォームをサポートしています.https://www.mongodb.com/download-center対応するインストールパッケージを見つけることができます.公式サイト:https://www.mongodb.com 公式文書:https://docs.mongodb.com GitHub:https://github.com/mongodb 中国語チュートリアル:http://www.runoob.com/mongodb/mongodb-tutorial.html
MongoDBの使用
pymongoの使い方
テーブルの作成
クエリー・テーブル
scrapy爬虫類はmongoデータベースに格納されます
MongoDBはC++言語で作成された非関係型データベースであり、分散型ファイルストレージに基づくオープンソースデータベースシステムであり、そのコンテンツストレージ形式はJSONオブジェクトに類似しており、そのフィールド値には他のドキュメント、配列、ドキュメント配列を含めることができ、非常に柔軟である.
MongoDBはWindows、Linux、Mac OS、Solarisなど、さまざまなプラットフォームをサポートしています.https://www.mongodb.com/download-center対応するインストールパッケージを見つけることができます.
MongoDBの使用
> 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の使い方
テーブルの作成
#!/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)
クエリー・テーブル
#!/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データベースに格納されます
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()