問題タブ [pymongo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PythonでMongoDBとPyMongoからOperationFailureをキャッチする方法
pymongoを介したmongohqへのmongodb接続がしばらくアイドル状態になった後(クエリなし)、タイムアウトになるという問題が発生しています。これは問題ありませんが、データベースの接続はDjangoアプリの起動時にのみ作成されます。再接続は正常に行われているようですが、再認証する必要があります。接続が切断されて再接続され、クエリを実行しようとするOperationFailure
と、次の例外値database error: unauthorized for db [shanereustle] lock type: -1
が発生し、再接続しているが認証されていないことを通知します。OperationFailure
からインポートしpymongo.errors
て、次の試行を使用しようとしています...ただし、エラーをキャッチして認証できないようです。
しかし、何らかの理由でこれはうまくいきません。このコードの代わりに、クエリの前にdb.authenticate()を実行すると、再認証は正常に行われ、正常に機能しますが、すべてのクエリで再認証する必要はありません。これを行うための適切な方法に関する他の提案は大歓迎です、そして私は助けに感謝します。
ありがとう!
python - リモート MongoDB 接続ですべてのクエリで認証が必要なのはなぜですか?
あちこちでさまざまなことと格闘した後、ようやく、BottlePYを Apache で実行し、MongoDB を利用したサイトを実行することができました。私はDjangoアプリの実行に慣れているので、質問で少し関連します。
問題
ページが BottlePY 経由で読み込まれるたびに、MongoHQ.com にある MongoDB データベースへの接続を再認証する必要があります (つまり、おそらく再接続する必要がありました)。
私が見つけたもの
各モデル関数の先頭にdb.keep_alive()
関数を追加して、mongodb クエリを実行する前に単純なクエリを実行しようとしました。失敗した場合は、OperationFailure または AutoReconnect エラーをキャッチし、関数を呼び出しdb.authenticate()
ます。再認証後、logs db にログを追加して、再認証が必要な頻度を監視します。現在、ページが読み込まれるたびに再認証する必要があります (クエリの実行が必要です)。これは正しくありません。
ジャンゴとの違い
私はこれと同じ概念をdjangoで使用しており、クエリが実行されていない10〜15分後にのみdb接続を認証する必要があることがわかりました。
同じドライバー、関数、メソッドを使用しているため、django で pymongo 接続を作成することと、ボトルで作成することとが異なる理由がわかりません。ORMSなども使用していません。
バージョン
- ボトル: 0.9.dev
- Django: 1.2.1 ファイナル
- パイモンゴ: 1.8
助けてくれてありがとう!
更新: 友人がざっと見て、私の質問に答えるのに役立つかもしれない次のことに気付きました.
単一のプロセスが長時間実行され続ける Django とは対照的に、各リクエストは新しい Python プロセスを起動しているように見えます。
mongodb - PyMongoを使用した正規表現クエリの実行
MongoDBサーバーに対してPyMongoを使用して正規表現クエリを実行しようとしています。文書構成は以下のとおりです。
パターン*Fileに一致するすべてのファイルを取得したい。そのままやってみました
それでも私は何も返されません。MongoDBのドキュメントによると、これは可能であるはずなので、何かが足りませんか?Mongoコンソールでクエリを実行すると、正常に機能します。これは、APIがクエリをサポートしていないことを意味しますか、それとも誤って使用しているだけですか?
mongodb - MongoDBのクエリからさらに結果があるかどうかを確認するにはどうすればよいですか?
制限付きでmongoをクエリし、スキップ/制限を使用して次のページをクエリした場合にさらに結果が得られるかどうかを知るための好ましい方法はありますか?
私がやっていることは、必要以上に1つ多くのドキュメントを要求し、それを最後からスライスし、その余分なドキュメントの存在を使用して、別のクエリで少なくとももう1つの結果が得られるかどうかを知ることです。
これは一般的な使用例(Webサイトに[その他の結果]ボタンを表示するかどうかを知る)であり、現在のソリューションには愚かだと感じています。
python - pymongo: より効率的な更新
いくつかの大きなファイル (約 400 万レコード) を mongo インスタンスにプッシュしようとしています。私が基本的に達成しようとしているのは、既存のデータをファイルのデータで更新することです。アルゴリズムは次のようになります。
ですので、重みが同じなら「tsUpdated」以外の行全体を更新し、行がmongoにない場合は新しい行を追加するか、「tsUpdated」を含む行全体を更新する...これがアルゴリズムです
問題は、モンゴの観点から、これをより速く、より簡単に、より効率的に行うことができるかということです。(最終的には、ある種の一括挿入を使用)
python - PyMongo: 条件に 2 次元地理空間インデックスを持つグループがエラーを返す
返されるエラーは次のとおりです:
例外: 手動マッチャー構成は許可されていません
これが私のコードです:
条件から場所を削除すると、正常に動作します。クエリを変更してfind
も問題なく動作するため、グループに問題があります。
私は何を間違っていますか?
python - pymongo (python+mongodb) コレクション/gridfs を削除しますか?
ドキュメントのコレクションをドロップし、gridfs データベースもドロップするコマンドを知っている人はいますか?
python - mongodb コレクションを更新する方法
私のコレクション構造は次のとおりです。
今、私update
はコレクションcol1
したい
ここに別のロール番号を追加しました。ピモンゴでこのコレクションを更新する方法。
python - 64ビットバージョンのpymongoはありますか?
easy_installと64ビットPythonを使用してpymongoをインストールすると、例外が発生します。ただし、32ビットPythonで動作します。32ビットのPythonのみがサポートされているようです。
だから私は64ビットのpymongoが存在するかどうか知りたいですか?
ありがとう。
---詳細---
mongodb - MongoDB ドット表記クエリ
私は MongoDB を初めて使用し、ドット表記クエリを機能させるのに問題があります...
リモートの Amazon EC2 インスタンスで実行されている MongoDB で pymongo を使用しています...
大量の XML 解析コードを記述して多数の異なるデータを抽出する代わりに、XML を JSON に変換し、すべてを MongoDB にダンプしてから、ドット表記クエリを使用して必要なデータを抽出しようとしています...
データは JSON に変換され、Mongo に正常に挿入されます。私はすべての挿入を見ることができます(Pythonシェルから)...
for item in db.feed.find(): item
返されるアイテムの例を次に示します...
このようなクエリを実行しようとしていますが、結果が得られません...
db.feed.find_one({"message.category.text": "スコア"})
これらのタイプのクエリを実行し、応答でドキュメント全体を取得する適切な方法は何ですか? ありがとう!