具有DataFrames的Mongoengine文档

问题描述

假设我有以下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"] })

F

我知道我可以轻松地将这些数据帧上传到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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...