必備專屬
Python >= 3.2
six >= 1.10
mongodb >= 3.6
pymongo >= 3.6
mongoengine
一、安裝mongodb,保證系統(tǒng)中安裝了mongodb服務(wù)并啟動,安裝方法如下:
-
創(chuàng)建db存儲目錄(可自定)
md e:\mongodb\data -
打開cmd并設(shè)置dbpath
"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe" --dbpath "e:\mongodb\data" -
使用mongod.exe啟動mongodb服務(wù),主要打開database進(jìn)程
"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe" 使用mongo.exe 連接mongodb數(shù)據(jù)庫
三、安裝pymongo
// pip安裝
$ python -m pip install pymongo
// easy_install安裝
$ python -m easy_install pymongo
// 下載git源安裝
$ python setup.py install
test_connection.py
>>> import pymongo
>>> client = pymongo.MongoClient("localhost", 27017)
>>> db = client.test
>>> db.name
u'test'
>>> db.my_collection
Collection(Database(MongoClient('localhost', 27017), u'test'), u'my_collection')
>>> db.my_collection.insert_one({"x": 10}).inserted_id
ObjectId('4aba15ebe23f6b53b0000000')
>>> db.my_collection.insert_one({"x": 8}).inserted_id
ObjectId('4aba160ee23f6b543e000000')
>>> db.my_collection.insert_one({"x": 11}).inserted_id
ObjectId('4aba160ee23f6b543e000002')
>>> db.my_collection.find_one()
{u'x': 10, u'_id': ObjectId('4aba15ebe23f6b53b0000000')}
>>> for item in db.my_collection.find():
... print(item["x"])
...
三、安裝mongoengine(通常django用此依賴操作mongodb)
pymongo來操作MongoDB數(shù)據(jù)庫,但是直接把對于數(shù)據(jù)庫的操作代碼都寫在腳本中,這會讓應(yīng)用的代碼耦合性太強(qiáng),而且不利于代碼的優(yōu)化管理
MongoEngine是一個對象文檔映射器(ODM),相當(dāng)于一個基于SQL的對象關(guān)系映射器(ORM)
MongoEngine提供的抽象是基于類的,創(chuàng)建的所有模型都是類
Examples:
from mongoengine import *
connect('test')
class BlogPost(Document):
title = StringField(required=True, max_length=200)
posted = DateTimeField(default=datetime.datetime.utcnow)
tags = ListField(StringField(max_length=50))
meta = {'allow_inheritance': True}
class TextPost(BlogPost):
content = StringField(required=True)
class LinkPost(BlogPost):
url = StringField(required=True)
# Create a text-based post
>>> post1 = TextPost(title='Using MongoEngine', content='See the tutorial')
>>> post1.tags = ['mongodb', 'mongoengine']
>>> post1.save()
# Create a link-based post
>>> post2 = LinkPost(title='MongoEngine Docs', url='hmarr.com/mongoengine')
>>> post2.tags = ['mongoengine', 'documentation']
>>> post2.save()