【发布时间】:2020-03-06 19:13:14
【问题描述】:
import mongoengine
def global_init():
mongoengine.register_connection(alias="core", name="project")
class Worker(mongoengine.Document):
username = mongoengine.StringField()
salary_per_hour = mongoengine.FloatField()
total_hours_worked = ********[1]
meta = {
"db_alias": "core",
"collection": "users"
}
class Project(mongoengine.Document):
name = mongoengine.StringField()
associated_users = mongoengine.ListField(ReferenceField(User))
progress = mongoengine.EmbeddedDocumentField(Progress)
meta = {
"db_alias": "core",
"collection": "projects"
}
class Contrib(mongoengine.Document):
project = mongoengine.ReferenceField(Project)
user = mongoengine.ReferenceField(User)
hour = mongoengine.FloatField()
meta = {
"db_alias": "core",
"collection": "contribs"
}
class Progress(mongoengine.EmbeddedDocument):
total_hours = ********[2]
percentage = ********[3]
total_cost = ********[4]
您好,我正在尝试与 mongoengine 建立工人-项目关系,将会有各种项目和工人。 贡献将是该计划的主要投入。我需要这些数据库来实现未来的功能。 我想在数据库之间建立一些关系,而不是根据输入更新所有内容。例如;
[1] 工人的总工作时间。
[2] total_hours 工人在该项目上工作。
[3] 项目的连续百分比计算,百分比参考取决于指定的工作时间。
[4] 到目前为止的项目成本取决于工人的薪水_每小时及其工作时间
我是 noSQL 数据库的新手,即使我写得对,我也不知道。是否可以通过一些映射功能在数据库之间建立这些关系?我不知道我应该为这些使用什么,或者是否需要对代码进行任何更改才能正常工作。 你能写一些例子或建议我一些研究这些东西的资源吗?我在 mongoengine 文档中迷失了过去 2 小时,但无法满足我的需求。
提前感谢您的帮助。
【问题讨论】:
标签: python database mongodb nosql mongoengine