Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有数据帧的Mongoengine文档_Python_Mongodb_Pymongo_Mongoengine - Fatal编程技术网

Python 带有数据帧的Mongoengine文档

Python 带有数据帧的Mongoengine文档,python,mongodb,pymongo,mongoengine,Python,Mongodb,Pymongo,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(

假设我有以下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","Gohan","Piccolo"],
                          "office":["Earth","Pao","Namek"],
                          "salary":[1,2,3]})
df_department = pd.DataFrame({"offices":["Earth","Pao","Namek"],
                              "city":["South City","North City","nameki"],
                              "country":["A","B","C"] })

我知道我可以通过以下方式轻松将这些数据帧上传到mongo集合:

db.collection.insert_many(df_name.to_dict("records"))
但如果我这样做了,那么为什么我要定义这些类用户、办公室、部门?我不知道如果我这样做,我是否会得到一个非空的答案

User.objects(); Office.objects(), Department.objects()
我知道我能做到

记录=用户(name=“Goku”,特征=0) record.save#一些上传到集合的命令

所以,我的问题是,如何使用我定义的类上传这些数据帧? 某种

df_name.apply(lambda x: Respectively_Class(**x)).insert(db.collection_name)

因此,当我分别调用\u Class.objects时,我得到了一个非空结果?

例如,您可以这样做:

array = df_office.to_dict()
instances = [Office(**data) for data in array]
Office.objects.insert(instances, load_bulk = False)