0
我打電話給db dev
將數據插入到它的集合中。但它創建了一個新的集合並將數據插入admin
db。燒瓶Pymongo插入
from app import app
from flask import Flask
from flask import jsonify
from flask import request
from flask_pymongo import PyMongo
@app.route('/')
@app.route('/index')
def index():
return "Hello, World!"
app.config['MONGO_DBNAME'] = 'dev'
app.config['MONGO_AUTH_SOURCE'] = 'admin'
app.config['MONGO_URI'] = 'mongodb://<user>:<password>@<url>:27017/admin'
mongo = PyMongo(app)
@app.route('/mongo', methods=['GET'])
def get_all_docs():
doc = mongo.db.abcd.insert({'abcd':'abcd'})
return "Inserted"
if __name__ == '__main__':
app.run(debug=True)
我在這裏錯過了什麼嗎?
PS:我試着用dev
替換admin
。它給了pymongo.errors.OperationFailure: Authentication failed.
我想那是因爲驗證數據在admin
db。
app.config['MONGO_URI'] = 'mongodb://<user>:<password>@<url>:27017'
這也是行不通的。
爲什麼就不能''MongoDB的替代: @:27017/dev''?如果您正在閱讀帖子,告訴您將AUTH_SOURCE或「admin」設置爲數據庫,那麼這些來源實際上已過時。驅動程序通過「default」查看「admin」授權,並且您應該只需要有意使用其他命名空間的其他選項。由於您使用的是默認設置,因此其他設置不是必需的。 –
admin
://@NeilLunn'pymongo.errors.OperationFailure:身份驗證失敗.'當我使用dev代替管理員。我已經在上面提到過了。 – Anubhav
實際上用於連接的是什麼?這個問題標籤爲mongoengine。你是真的使用這個,還是你在你自己的代碼中調用了原始的pymongo驅動程序?因爲這個'PyMongo(app)'調用沒有被AFAIK使用。最重要的是**你是possitive **該帳戶實際上可以訪問'dev'數據庫?您是否嘗試過使用其他來源的帳戶連接和使用該集合? –