問題タブ [doctrine-odm]
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.
mongodb - Symfony 2.0.15 で動作する DoctrineBundle のバージョンは?
私は、Symfony 2.0.15 で deps を整理するために何日も費やしました。互換性のあるバンドルのリストが見つからず、github でコミットを追跡して、BC 以外の一連の変更をたどって、自分に適したバージョンのリストを取得しようとしています。最終的に私はあきらめて composer にアップグレードすることを選択しましたが、Doctrine コアのいくつかは Symfony 2.1 を必要とし、他の Doctrine バンドルのいくつかは Symfony <2.1 を必要とし、最終的にそれもあきらめました。
次のバンドルがインストールされている人は、deps.lock から使用している安定したバージョンを教えてもらえますか?
これらの組み合わせを使用すると、クラスが存在しないか名前が変更されたメソッドが原因で、一定のエラー セットが発生します。次に、github リポジトリを検索し、このエラーを解決するコミット/タグに修正しようとしますが、別のエラー セットが発生するためです。存在しない、または名前が変更された他のクラスのメソッド。Doctrine 組織の名前空間が変更されたため、数週間前の安定した状態に戻ることはできません - (@Doctrineの Symfony Bundle repos に何が起こったのかを参照してください)
または、作曲家に切り替えてもかまいません。私が試したcomposer.jsonはこちらですが、動作しません
composer.json の依存関係を修正しようとするたびに、同じパッケージのアップグレードと劣化のサイクルを何度も繰り返しているようですが、常に「要件をインストール可能なパッケージのセットに解決できませんでした。」というエラーが表示されます。Symfony 2.0.15 と Doctrine、MongoDB、DoctrineFixtures、および DoctrineMigrations のバンドルを使用して composer.json のセットアップを提供してくれる人がいれば、とても感謝しています。
mongodb - JMSSerializerBundleを使用してDoctrineオブジェクトを逆シリアル化するにはどうすればよいですか?
Doctrine-ODMを使用していて、Symfonyでドキュメントオブジェクトを(逆)シリアル化しようとしています。
シリアル化は機能しているようですが、逆シリアル化しようとすると、次のエラーが発生します。
My \ Bundle \ Repository \ Item ::$idのタイプを定義する必要があります。
私はこの呼び出しで逆シリアル化しようとします:
私のドキュメントにはいくつかの埋め込みドキュメントがありますが、シリアル化された文字列では問題ないようです。Document-Typeに関する情報がありません。ここに出力の簡単な例があります:
今、私は使用説明書を読み、私の解決策はサードパーティのクックブックのメタデータで説明されていると思いますが、何をすべきか理解できません。
これを修正して、文字列をオブジェクトに正しく逆シリアル化するにはどうすればよいですか?
php - Doctrine ODM / MongoDB はクエリを再試行しませんか?
Doctrine ODM を使用して MongoDB に接続しています。私は 3 つのノードのレプリカ セットを持っています: 2 つのフルと 1 つのアービターです。レプリケーションは高可用性のみを目的としており、読み取りをノード間で分散しようとはしていません。私のアプリケーションはMongoCursorException
、メッセージで頻繁に sをログに記録していますnot master and slaveok=false
。mongodb ログにフェールオーバー イベントが発生し、プライマリが変更されなかったという証拠はありません。訂正:フェールオーバーは確かに発生しましnot master and slaveok=false
たが、新しいプライマリが正常に選出されてから 6 時間後にさえ、例外が頻繁に表示されていました。
何をすべきか?私たちのバージョンのdoctrine-mongodbには(実験的な?) 再試行機能が含まれていますが、それを有効にする簡単な方法がわかりません。
問題があるかどうかはわかりませんが、これは Symfony2 (v2.0) アプリです。
https://groups.google.com/d/topic/mongodb-user/6p710Rdycpg/discussionは、再試行が必要であることを意味します(私の強調):
アプリケーションは、再接続/再試行するように作成する必要があります。これは、通常の操作中のローリング アップグレード プロセスと同様に発生する可能性がある一時的な (ネットワーク) エラーがいくつもあるためです。
Mongo PHP extension docsはこれを説明しているようです:
最初の試行が特定の理由で失敗した場合、ドライバーは自動的に「プレーンな」クエリ (コマンドではない) を数回再試行します。これは、レプリカ セットのフェールオーバー中に発生する例外を減らし (おそらくまだ対処する必要がある場合もあります)、一時的なネットワークの問題を解決するためです。
doctrine-mongodb
そして、PHP拡張機能を使用して実際にmongodと通信しただけだと思いました。そのため、再試行の構成について心配する必要があるかどうかについて、少し混乱しています。
問題の一部を解決したと思います。Kristina Chodorow からのこのアドバイスに従って、接続文字列からアービターを削除しました。メッセージに s が表示されなくなりました。https://jira.mongodb.org/browse/PHP-392にアクセスしていた可能性があります。MongoCursorException
not master and slaveok=false
ただし、フェールオーバー中MongoCursorException
にメッセージが表示されます。couldn't determine master
たとえば、フェイルオーバーを実行しました。mongod ログに基づいて、数秒後に新しいプライマリが選出されましたが、5 分後でも Web アプリケーションはその例外をスローしていました。
doctrine - ZF1 + Doctrine 2 ODM: 未定義メソッド AnnotationReader::setDefaultAnnotationNamespace の呼び出し
zf1 + doctrine mongo odm 1.0.0BETA4-DEV プロジェクトをセットアップしようとしています。https://github.com/Bittarman/zf-d2-odmブランチを使用していますが、doctrine のバージョンを 1.0.0BETA3 から 1.0.0BETA4-DEV に更新すると、次のエラーが発生します。
symfony - 参照されたドキュメントIDを照会したり、ハイドレイトしたりせずに、それを取得するためのよりスマートな方法はありますか?
他のいくつかのドキュメントへの参照を含むドキュメントがあります。ほとんどの人と同じように、私はこれらのドキュメントを表示するためにURLの「id」フィールドでMongoIdを使用しています。メインドキュメントからこれらの参照ドキュメントへのリンクを表示したいという状況です。参照されたドキュメントのIDを取得するために、次のようなコードを使用しています。
ここでの明らかな煩わしさは、私がIDを取得できるようにするために、doctrineが別のクエリを実行してその参照ドキュメントをフェッチすることです。ただし、IDは技術的には、参照フィールドのメインドキュメントにすでに存在します。参照されているドキュメント全体を照会してハイドレイトすることなく、IDのみを取得するより効率的な方法があるべきではありませんか?これを実行するたびにカスタムクエリを作成する必要がありますか?
参照ドキュメントへのリンクを含むメインドキュメントの大規模なリストを生成する場合、この問題は重大になります。
mongodb - Doctrine2 ODM QueryBuilder - 2 つのフィールドの合計でフィールドを更新する
基本的には次のようにします:
Doctrine2 の ODM QueryBuilder では、MapReduce なしでこのようなことは可能ですか? シャード コレクションがあるため、複合シャード キーで検索するには QueryBuilder を使用する必要があります。
単純化された例:
残念ながら、これはcolumn3
文字列 "column1 + column2" に設定されます。何か案は?
mongodb - Doctrine MongoDB ODM で複数のドキュメントを削除する方法
doctrine mongodb odm で複数のドキュメントを削除するにはどうすればよいですか? PHP クラスでは、次のコードを使用して実行できるはずです。
doctrine mongo odmでどうすればできますか?
mongodb - Doctrine2 ODM - _id としてのオブジェクト (または埋め込みドキュメント)
ID と日付でグループ化して、さまざまな期間のメトリックを調べているコレクションにインクリメンタル マップを縮小するプロセスがあります。したがって、出力コレクションには基本的に、グループ化を処理するための複合 ID があります。
ODM を使用して Symfony2 アプリでこのコレクションから結果をフェッチできるようにしたいのですが、_id
フィールドに問題があります。@Id
andとして指定できるかもしれないと思いました@embedOne
:
ただし、これは機能しません。で設定も試みました@Id
がstrategy=NONE
、QueryBuilder を使用して行をフェッチできますが、Document クラスをハイドレートしようとするとエラーになります。サイト ID と日付 ( ) をスラッグしてみ67-134137916
ました。これにより、DocumentManager を使用できますが、日付範囲でクエリを実行する機能が失われます。
Doctrine2 の ODM でオブジェクトを id として処理する方法について意見がありましたが、これはサポートされていますか?
編集: 複合主キータグを削除しました-質問は、オブジェクトを主キーとして使用することに実際に関係しています。
rest - 外部で変更されたデータの Doctrine Mongo ODM マージ
モバイル ユーザーが REST サービスを介して「ホーム」を作成および更新できるようにする Symfony2 アプリを作成しています。MongoDB をストレージ層として使用し、Doctrine MongoDB ODM を使用してドキュメント処理を行っています。
およびメソッドは正常に機能していますGET /homes/{key}
。POST /homes
問題は、既存のホームを で更新しようとしたときに発生しPUT /homes/{key}
ます。
現在のコードは次のとおりです。
アクションに渡された JSON 文字列は、JMSSerializer によって Document オブジェクト グラフに正常に逆シリアル化されますが、マージとフラッシュを試みると、次のエラーが発生します。
ここのドキュメントに従おうとしています: http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/working-with-objects.html#merging-documents
マージを試みる前に、逆シリアル化されたホームに対して何かする必要がありますか? マージは間違った方法ですか?
ありがとう。
php - PHP Mongo: 通知: Mongo::__construct(): サーバーの解析
なぜ私は次のphp通知を受け取っているのだろうと思っています:
38行目:
通知は常にではなく、時々表示されます。doctrine mongo ODM を使用しています。