Django-从mongodb中检索和规范化数据



在django项目中,我与mongodb连接而不创建模型。我只是使用python代码将数据直接写入集合。所有的集合都是独立工作的。例如,我有雇员和雇员集合(一个雇员有多个雇员)。雇员和雇佣之间没有外键关系。

# employee response
{{"emp_id": "S101", "emp_name": "Kim", "dob": "1995-12-30"}
{"emp_id": "S102", "emp_name": "Sasi", "dob": "2000-12-01"}
{"emp_id": "S103", "emp_name": "Shakthi", "dob": "2001-01-01"}}
# employment response
{{"emp_id": "S101", "employment_type": "contract", "status": "terminated", "date": "2017-04-05"},
{"emp_id": "S101", "employment_type": "contract", "status": "pending", "date": "2018-07-09"},
{"emp_id": "S102", "employment_type": "Permanent", "status": "active","date": "2017-04-05"},
{"emp_id": "S103", "employment_type": "Permanent", "status": "active", "date": "2017-04-05"}}

当我检索员工详细信息时,我希望得到如下响应,

{
{{"emp_id": "S101", "emp_name": "Kim", "dob": "1995-12-30", 
"employment_status": {{"emp_id": "S101", "employment_type": "contract", "status": "terminated", "date": "2017-04-05"},
{"emp_id": "S101", "employment_type": "contract", "status": "pending", "date": "2018-07-09"}}
{{"emp_id": "S102", "emp_name": "Sasi", "dob": "2000-12-01", 
"employment_status":{"emp_id": "S102", "employment_type": "Permanent", "status": "active","date": "2017-04-05"}}}
}

我怎样才能做到这一点?提前谢谢。

client = MongoClient("localhost", 27017)
db = client["hrmdb"]
results = db.employee.aggregate([
{
'$lookup': {
'from': "employment",
'localField': 'emp_id',
'foreignField': 'emp_id',
'as': 'employments'
}
}
])
document_list = []
for rec_value in results:
y = json.loads(json_util.dumps(rec_value))
document_list.append(y)

以上代码解决了我的问题。

最新更新