Python 在mongodb集合中导入json?

Python 在mongodb集合中导入json?,python,json,django,mongodb,Python,Json,Django,Mongodb,我想将一个.json文件作为字段导入MongoDB集合,其中导入的数据基本上可以作为带有字段标签的子文档。这可能吗?我正在使用Django进行web框架和文件上传 目前,Django中的数据模型如下所示: class Trip(models.Model): name = models.CharField(max_length = 120) file = models.FileField(upload_to = 'trips/files/', null = True, blank

我想将一个.json文件作为字段导入MongoDB集合,其中导入的数据基本上可以作为带有字段标签的子文档。这可能吗?我正在使用Django进行web框架和文件上传

目前,Django中的数据模型如下所示:

class Trip(models.Model):
    name = models.CharField(max_length = 120)
    file = models.FileField(upload_to = 'trips/files/', null = True, blank = True)
我希望“file”字段是一个.json导入,将子字段读入文档;在Mongo中,数据模型如下所示,例如:

{
    "_id": {
        "$oid": "5e18e9b0593b827d141e9c6d"
    },
    "name": "f"
    "file": {
        "field1": "asdf"
        "field2": 1234
        "field3": {
            "fieldA": "3"
            "fieldB": "876"
        }
    }
}
其中“file”下的字段位于导入的.json文件中。显然,真正的json会更复杂,但这只是一个简单的例子


如果这是可能的,请让我知道,能够导入这些.json并在Mongo中正确处理它们是我能够获得运行所需的一切。谢谢

PyMongo很有帮助。它提供的
insert\u one()
函数的工作原理与典型的mongo insert相同。查看文档。 您可能需要基于模型的函数。您还需要合并PyMongo需求以利用此功能

试试这个:

import pymongo

client = pymongo.MongoClient("localhost:27017")
db = client.your_database #Database
col = db.your_collection #Collection

class Trip(models.Model):
    name = models.CharField(max_length = 120)
    file = models.FileField(upload_to = 'trips/files/', null = True, blank = True)

    def insert_into_collection(self):
        col.insert_one({'uploaded_file':file})


我不确定这是否是一个愚蠢的问题,但我是否需要调用models.py中的数据库?我已经在项目的设置文件中设置了连接。有没有办法引用它而不是打开与MongoClient()的连接,或者我是不是很笨,不明白这是怎么回事?无论如何,谢谢你,因为这已经对我有帮助了。@frz你可以通过
views.py
创建一个连接,将文件插入mongo数据库。这很可能是一个更简单的解决方案。它必须在用户上传文件后运行,然后将文件本身保存到数据库中。