问题描述
假设我有以下mongo模型:
class User(Document):
name = StringField(required=True,unique=True)
characteristics = DictField()
class Office(Document):
user = ReferenceField(User)
office= StringField(required=True,unique=True)
salary = IntField()
class Department(Document):
offices = ReferenceField(Office)
city = StringField(required=True,unique=True)
country = StringField()
我有以下数据框:
df_users = pd.DataFrame({"name":["Goku","Gohan","Piccolo"],"characteristics":[{"a":1},{"b":2},{"c":3}]})
df_office = pd.DataFrame({"user":["Goku","office":["Earth","Pao","Namek"],"salary":[1,2,3]})
df_department = pd.DataFrame({"offices":["Earth","city":["South City","north City","nameki"],"country":["A","B","C"] })
我知道我可以轻松地将这些数据帧上传到mongo集合:
db.collection.insert_many(df_name.to_dict("records"))
但是,如果我这样做了,那为什么要定义这些类User,Office,Department?我不知道是否会得到答案,如果答案是肯定的,则不会回答
User.objects(); Office.objects(),Department.objects()
我知道我能做到
记录=用户(名称=“悟空”,特征= 0) record.save#一些命令上传到收藏夹
所以,我的问题是,如何使用定义的类上传那些数据框? 某种
df_name.apply(lambda x: Respectively_Class(**x)).insert(db.collection_name)
因此,当我分别调用Reclassly_Class.objects时,得到的结果非空吗?
解决方法
例如,您可以执行以下操作:
array = df_office.to_dict()
instances = [Office(**data) for data in array]
Office.objects.insert(instances,load_bulk = False)