0
私はそのコレクションにデータを挿入するためにdb dev
を呼び出しています。しかし、新しいコレクションを作成し、admin
dbにデータを挿入しています。Flask Pymongo Insert
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
に置き換えようとしました。それはpymongo.errors.OperationFailure: Authentication failed.
を与えました。認証データがadmin
dbにあるので、私はそれを推測します。
app.config['MONGO_URI'] = 'mongodb://<user>:<password>@<url>:27017'
これも機能しませんでした。
なぜ単に ' 'のMongoDBと: @:27017/dev''? AUTH_SOURCEまたは "admin"をデータベースとして設定するように指示する投稿を読んでいる場合、それらのソースは実際には古くなっています。ドライバは '' admin ''を認可のために" default "で調べます。意図的に別の名前空間が使用された場合にのみ、他のオプションが必要です。デフォルトを使用しているので、他の設定は必要ありません。 –
admin
を置き換える://@NeilLunn 'pymongo.errors.OperationFailure:Authentication failed .'私はadminの代わりにdevを使用します。私はこれを上記で言及した。 – Anubhav
接続には実際に何が使用されていますか? mongoengineとタグ付けされた質問。あなたは実際にこれを使用していますか、ここには表示されていない独自のコードでraw pymongoドライバを呼び出していますか?その 'PyMongo(app)'呼び出しはAFAIKによって使用されないためです。最も重要なのは、あなたが本当に**あなたのアカウントは実際に 'dev'データベースにアクセスできるのでしょうか?実際に、別のソースからそのアカウントを使用してコレクションに接続して作業しましたか? –