問題タブ [mongodb-java]
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.
java - MongoDBの特定のドキュメントの配列内の特定の埋め込みドキュメントの値を更新するにはどうすればよいですか?
私のドキュメントには次の構造があります。
someFieldとsomeField2を更新したいのですが、配列内のアイテムの1つ、_ arrayIdに一致するアイテム(例:_arrayId : ObjectId("dsd87dsa9d87s9d7")
;、このドキュメントのみ(例_id : ObjectId("43jh4j343j4j")
))のみを更新します。
arrayIdsはドキュメントに固有ではないため、特定のドキュメント用にする必要があります。$ positional operator
配列内のすべてのドキュメントの値を更新したい場合はifを使用できますが、それは私が望んでいることではありません。
私はこれをJavaで達成しようとしていますが、コマンドラインソリューションでも機能します。
java - 同時実行 - スレッドセーフな方法で Java 経由で挿入されたオブジェクトの MongoDB 生成 ID を取得する
Java 経由で挿入されたドキュメントの Mongo 生成 ID を取得する最良の方法は何ですか。
ドキュメントを挿入する Java プロセスはマルチスレッドです。つまり、オブジェクトの ID を挿入して返すアトミックな方法が必要です。
また、一意のインデックスを設定した場合、オブジェクトが重複している場合、ID は返されますか?
ありがとう!
java - mongodbカーソル例外 - Java
ユーザーの情報を保存するためにmongodbを使用しています。データベースから情報を取得し、Player オブジェクトを作成し、それらを Player の配列に挿入するメソッドを作成したかったのです。
これは次の方法です
データベースに 4 人のユーザーが保存されています。たとえば、最初にメソッドを呼び出してから名前を出力しようとすると、例外が発生します。メソッドの while の外で try-catch を使用して例外をキャッチしましたが、最初のユーザーの名前のみが出力されました。2回目の繰り返しで例外がスローされるようです。
これが私が受け取っている例外を除いたメッセージです。
java - mongodbを使用して配列内の配列を更新する
おそらく最も基本的なことで大きな問題を抱えています。データベースに次のエントリがあります
mappings 配列に別の値を挿入しようとしています。「テスト」のようなもの=> 10
残念ながら、さまざまなアプローチを試みても、まったく運がありません。現在、私は以下を試していますが、成功していません。
誰かが私が間違っていることを教えてくれれば幸いです。私はそれが本当に明白なことだと思っています!
Ps 最新の Driver と最新の MongoDB を使用しています
mongodb - Javaを使用したmongodbdbrefsの例
java / SpringData mongodb DBRefsの実用的な例を見つけようとしましたが、見つかりませんでした。私はMongodbを初めて使用し、SQL結合のような機能を使用して、共通のIDに基づいて2つのmongoコレクションからのデータを集約/マージする方法を探しています。
誰かが私を正しい方向に向けることができますか?アプリケーションレベルの集約/マージは、Mongo / Java / Springの組み合わせで唯一の最良のソリューションですか?
performance - 妥当な時間内に mongoDB を使用して多数のレコードを取得する
私はmongoDBを使用してクエリログを保存し、それに関する統計を取得しています。私がmongoDBに保存するオブジェクトには、クエリのテキスト、日付、ユーザー、ユーザーが結果をクリックした場合などが含まれます。
今、特定の日にユーザーがクリックしなかったすべてのクエリを Java で取得しようとしています。私のコードはおよそこれです:
クエリの出力には、反復する必要がある約 20,000 レコードが含まれています。問題は、数分かかることです:(。私は正常ではないと思います。サーバーログから私は見ます:
したがって、最初のチャンクの取得には 2 秒、2 番目のチャンクの取得には 0.1 秒、3 番目のチャンクの取得には 106 秒かかります!!! 奇妙な..バッチサイズを変更し、DateとIsClickにインデックスを作成し、マシンを再起動しようとしました:Pですが、方法はありません。どこが間違っていますか?
mongodb - MongoDB Java ドライバーの最大バッチ サイズを変更する
MongoDB Java ドライバー ( http://api.mongodb.org/java/2.6/com/mongodb/DBCursor.html#batchSize(int) )で DBCursor の Javadoc に出会いました。全体の最大バッチサイズは 4mb であることが記載されています。
これは MongoDB に関連していますか、それともどこかで構成できますか?
mongodb - 同時に相互に参照する 2 つのオブジェクトを作成すると、最初の ObjectId が MongoDB に格納された後に変更されるのはなぜですか?
spring roo を使用していますが、これは spring roo の問題ではなく、MongoDB の問題だと思います。
相互に参照する 2 つのクラス (ドキュメント) があります。
「Dummy」は参照により「Dummy2」を指します。
'Dummy2' は、技術的な理由により ObjectId を手動で格納することによって 'Dummy' を参照します。
これは、2 つのオブジェクトを作成する統合テストです。
結果が矛盾していることがわかりました。
これまでに 2 つの状況があります。
正しく動作します。期待どおりにお互いを参照します。
ダミー:
/li>
ダミー2:場合によっては、dummy が何も参照せず、dummy2 が無効な ObjectId を参照することがあります。
ダミー:
/li>
ダミー2:
なぜ後者の結果が生じたのだろうか。Dummy は Dummy2 が参照しているものとは異なり、新しく作成されたもののように見えます。しかし、ObjectId("4ecfa039941836a18fe88b22") のダミーはどこにあるのでしょうか? 紛失ですか?なんで?
Roo: 1.2.0.M1 [rev 1fa252f]
MongoDB: 2.0.1
mongodb - MongoDB と Play! フレームワークの一貫性のない動作
次のように、テストにいくつかのコードがあります。
そして、試行 MongoConnection() メソッドは、未知のホスト例外で失敗するはずの新しい Mongo(host, port) メソッドを実行します。私のマシンでは失敗していませんが(失敗の代わりにどの文字列を入力しても)、同僚のマシンでは失敗しています。したがって、テストは私のマシンでは失敗し、彼のマシンではパスします (つまり、彼は例外を受け取ります)。どんなアイデアでも私は困惑します!
ありがとう
ポール
編集:試みの接続方法のコードは
ここで、singleMOngo は Mongo 変数で、getHost と getPort は設定したものです (つまり、失敗と 0)。