Python 在mongodb集合中导入json?
我想将一个.json文件作为字段导入MongoDB集合,其中导入的数据基本上可以作为带有字段标签的子文档。这可能吗?我正在使用Django进行web框架和文件上传 目前,Django中的数据模型如下所示: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
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数据库。这很可能是一个更简单的解决方案。它必须在用户上传文件后运行,然后将文件本身保存到数据库中。