我正在使用 mongodb (mLab) 在 Flask 中开发 Web 应用程序。为heroku部署后,我有这样的错误:
userWarning: MongoClient 在 fork 之前打开。用connect=False创建MongoClient,或者fork后创建客户端。
我找到了这个文档,但不知道如何在我的代码中使用它。 http://api.mongodb.com/python/current/faq.html#using-pymongo-with-multiprocessing
这是我的代码的一部分。谁能告诉我如何使用connect = False创建MongoClient,或者在分叉后创建客户端?
from flask import Flask, render_template, url_for, request, session, redirect
from flask_pymongo import PyMongo
app = Flask(__name__)
app.config['MONGO_DBNAME'] = 'connect_to_mongo'
app.config['MONGO_URI'] = 'mongodb://admin:xxxxx@ds145148.mlab.com:45148/xxxxxx'
mongo = PyMongo(app)
@app.route('/companies', methods=['GET'])
def showCompanies():
if 'userName' not in session:
return redirect(url_for('start_page'))
mongoCompanies = mongo.db.companies
mLabCompanies = [x for x in mongoCompanies.find()]
return render_template('companies/companies.html', mLabCompanies=mLabCompanies)
Run Code Online (Sandbox Code Playgroud)
从heroku登录:
2017-01-28T09:21:05.106084+00:00 heroku[router]: at=info method=GET path="/" host=hidden-crag-49839.herokuapp.com request_id=305240cf-6cb2-493d-8e07-22fac67c7fd4 fwd="89.75.75.183" dyno=web.1 connect=0ms service=5ms status=200 …Run Code Online (Sandbox Code Playgroud) 我试图在深层嵌套关系上使用“where”(我们可以将“on relation from relation”解释为“在关系上的关系”)。
不幸的是,对于 Prisma 文档中的 2022-06,只有有关使用“include”与深层嵌套关系的信息,没有关于与“where”的深层嵌套关系的信息。
Schema.graphql 中的简化类型:
type Entity {
id: ID!
company: Company
}
type Company {
id: ID!
entity: Entity!
status: CompanyStatus!
}
type CompanyStatus {
id: ID!
companies: [Company]
}
Run Code Online (Sandbox Code Playgroud)
我想查询实体并仅获取这些实体,这些实体拥有公司,具有确切的状态(假设状态具有 ID:1)。
我尝试过多种方式:
1)
function entities(parent, args, context, info) {
const where = {
company: { status: {id: 1} }
}
return context.prisma.entities.findMany({where});
}
Run Code Online (Sandbox Code Playgroud)
返回:
Unknown arg `status` in where.company.status for type CompanyRelationFilter. Did you mean `is`? Available args:\ntype CompanyRelationFilter {\n is?: …Run Code Online (Sandbox Code Playgroud)