通过 Mongoengine 集成 Python 和 MongoDB
Integrating Python and MongoDB through Mongoengine
我正在学习如何整合 Python 和 MongoDB,所以我给自己设定了一个挑战:创建一个注册足球运动员的小程序。
我的程序有两个模块,info_player 和 info_team。我将以交互方式 运行 程序 (python -i)。第一个模块接收有关球员的信息,第二个模块接收有关球队的信息,以及一些查询和保存在数据库中。
我的数据库设计如下,数据库名为 "championship",集合为 "teams",文档为 "players"。也就是说,球队和球员之间是一对多的关系。
我的问题:我是否需要将对象转换为 Json(认为 to_json
方法)?如何保存和查询?
info_player:
class Player:
def __init__(self, name, age, nationality="brazilian", team):
"""
initializating Jogador class
"""
self.personal(name, age, country)
self.professional(team)
def personal(self, name, age, nationality, dominancy, height):
"""
personal data about players
"""
self.name = name
self.age = age
self.nationality = nationality
self.height = height
self.dominancy = dominancy # righty, lefty or ambidextrous
def profissional(self, position, number, team, primary):
"""
professional data about players
"""
self.position = position
self.number = number
self.team = team
self.primary = False # is he a regular member of a team?
def to_Json():
pass
info_team:
from pymongo import MongoClient
from info_player import Player
class TeamDB:
def __init___(self, nome, fundacao, federacao):
self.name = name
self.foundationData = foundationData
self.federation = federation
def initializeDB():
client = MongoClient('localhost', 27017)
global base
base = client.league
def toMongo():
"""
receive a player object and save it
"""
def playersByPosition():
"""
query players by position
"""
def lineup():
"""
receive a team and return its starting line-up, players with primary = true
"""
do I need to convert objects to Json (thought to_json method)?
不,你不必这样做。在你保存文档的问题的上下文中,你可以调用 .save() 这是因为底层 MongoEngine 将对象转换为 BSON,这样你就不必显式编写方法将其转换为 JSON.
参见 MongoEngine:将 mongoengine 对象转换为 JSON#1
如果您想了解如何将 MongoEngine 对象转换为 JSON。
How to save and make some queries?
查看插入示例 MongoEngine Tutorial: Adding to our tumblelog:
p1 = Player(name='Caio', age=20)
p1.save()
我正在学习如何整合 Python 和 MongoDB,所以我给自己设定了一个挑战:创建一个注册足球运动员的小程序。
我的程序有两个模块,info_player 和 info_team。我将以交互方式 运行 程序 (python -i)。第一个模块接收有关球员的信息,第二个模块接收有关球队的信息,以及一些查询和保存在数据库中。
我的数据库设计如下,数据库名为 "championship",集合为 "teams",文档为 "players"。也就是说,球队和球员之间是一对多的关系。
我的问题:我是否需要将对象转换为 Json(认为 to_json
方法)?如何保存和查询?
info_player:
class Player:
def __init__(self, name, age, nationality="brazilian", team):
"""
initializating Jogador class
"""
self.personal(name, age, country)
self.professional(team)
def personal(self, name, age, nationality, dominancy, height):
"""
personal data about players
"""
self.name = name
self.age = age
self.nationality = nationality
self.height = height
self.dominancy = dominancy # righty, lefty or ambidextrous
def profissional(self, position, number, team, primary):
"""
professional data about players
"""
self.position = position
self.number = number
self.team = team
self.primary = False # is he a regular member of a team?
def to_Json():
pass
info_team:
from pymongo import MongoClient
from info_player import Player
class TeamDB:
def __init___(self, nome, fundacao, federacao):
self.name = name
self.foundationData = foundationData
self.federation = federation
def initializeDB():
client = MongoClient('localhost', 27017)
global base
base = client.league
def toMongo():
"""
receive a player object and save it
"""
def playersByPosition():
"""
query players by position
"""
def lineup():
"""
receive a team and return its starting line-up, players with primary = true
"""
do I need to convert objects to Json (thought to_json method)?
不,你不必这样做。在你保存文档的问题的上下文中,你可以调用 .save() 这是因为底层 MongoEngine 将对象转换为 BSON,这样你就不必显式编写方法将其转换为 JSON.
参见 MongoEngine:将 mongoengine 对象转换为 JSON#1 如果您想了解如何将 MongoEngine 对象转换为 JSON。
How to save and make some queries?
查看插入示例 MongoEngine Tutorial: Adding to our tumblelog:
p1 = Player(name='Caio', age=20)
p1.save()