1

目前,我正在尝试通过 Django 应用程序从数据库(目前是 MongoDB,但我过去使用过 MSSQL 2008)返回简单查询。

我的问题是围绕一般的 Django 数据库设置。例如,如果我在后端使用 pymongo 来建立连接并返回我正在寻找的集合,那么 django-nonrel 和 mongodb-engine 到底在做什么?如果我返回了查询的数据(例如在views.py 中)并通过我的一个模板进行了渲染,那么与在settings.py 中设置数据库相比,这样做有什么缺点吗?

这是我目前在views.py中返回查询数据的方式:

from django.shortcuts import render_to_response
from pymongo import MongoClient

def bar(request):
    client = MongoClient()
    db = client['myDB']
    collection = db.myCollection.find({"date":"2013-10-23"})
    return render_to_response("index.html", {"returnedData" : collections})
4

1 回答 1

2

您的代码的缺点是您需要支付设置 MongoClient 并为每个请求建立与服务器的连接的成本。您应该只创建一个 MongoClient 并在应用程序的整个生命周期中使用它。如果您测试示例代码的性能并将其与创建单个 MongoClient 的性能进行比较,当您的应用程序启动时,我希望您会看到您的代码慢了几个数量级。

于 2013-12-04T17:56:49.100 回答