問題タブ [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.
php - doctrine ODM (mongodb) マージが機能しない
を使用して運がありませんmerge()
。私は文書化されていることをほぼ正確に行っています:
しかし、変化は決して固執しません。代わりにこれを行う必要があります:
merge()
非常に簡単に思えるので、思ったように機能しない理由がわかりません。
php - mongodbのデフォルトのコミットオプションをどのように設定しますか?
Symfony2 アプリケーションで Doctrine MongoDB ODM を使用しています。
safe: 3
デフォルトのコミット オプション ( やなど)を設定するにはどうすればよいfsync: true
ですか?
理想的には、YAML 構成ファイルでこれを行うことができますが、ドキュメントはこれが不可能であることを示しているようです。
Configuration オブジェクトを取得できれば、そこに defaultCommitOptions (のような)を設定できるはずfsync
ですが、どのように、いつ、どこでそれを行うべきかわかりません。
php - Doctrine MongoDB ODM: findAndUpdate() の後に flush() を呼び出す必要がありますか?
flush()
経験的には、それ以降は必要ないように思われfindAndUpdate()
ます。Doctrine ODM/MongoDB のドキュメントのどこにも明示的に記載されているのを見つけることができませんでした (そして、あまりソース コードを読む気にはなりませんでした)。
findAndModify
mongodb.org状態のドキュメント
このコマンドを使用して、ドキュメント (最大 1 つ) をアトミックに変更し、それを返すことができます。
Doctrine MongoDBfindAndUpdate()
は MongoDB のfindAndModify
. したがって、すべてが実際に一度に行わflush()
れるように思われるため、ドキュメント マネージャーを呼び出す必要はありません。
php - DoctrineのMongodbODMで正規表現を使用するにはどうすればよいですか?
正規表現を使用して、Symfony2でDoctrineのMongodbODMを使用してMongodbにクエリを実行しようとしています。
私はPHPのmongoドライバーがそれを実行できることを知っています。しかし、Doctrineでこれを行う方法がわかりません。
同じクラスを使用しますか?Symfony内からMongoRegexを参照するにはどうすればよいですか?
doctrine - ODM:両方のドキュメントで参照が作成されていない
このような2つの単純なドキュメントがあり、1人の人が多くの論文を所有できますが、論文は1人の個人にしか所属できないとします。
片方の端で参照を作成するときにどこかで読んだと思いましたが、DoctrineODMは両側で参照を自動的に作成します。したがって、以下のステートメントを実行すると、紙のドキュメントからの人への参照が表示されます。また、人のドキュメント内の紙への参照も表示されます。
私がそれをして、mongodbをチェックすると、紙からの参照->人がそこにいます。しかし、参照者は表示されません->データベースに表示されている紙。カスケードアノテーションがこれに役立つと思いましたが、明らかに何かが足りません。
参照が両端に含まれていることを確認して、クエリを実行して1人の人物に属するすべての論文を表示するにはどうすればよいですか?これは手動で行う必要がありますか、それともDoctrineにこれを処理させることができますか?
アップデート
このページの最初の段落は、それが可能だと私に思わせました。
doctrine - ODM:双方向の関係を実現できません
私は2つの文書を持っています。特定の人に関連するすべての論文を見つけようとしています。ドキュメントはコレクションに保存されており、参照はからに作成されていますがPerson
、Paper
その逆はありません。
新しい双方向リファレンスを作成する
コードの後半で、このクエリは0の結果を返します。特定の人が書いた論文を返却するべきではありませんか?
mongodb - MongoDB ODM SELECT COUNT(*)と同等
MySQL-Queryに相当するものがあるかどうか疑問に思います。
MongoDB ODMで?
これはうまくいくかもしれません:
ただし、すべてのIDが返されるわけではなく、データベースにさらに複雑なドキュメントがある場合、これはパフォーマンスにどのように影響しますか。カウントを取得するためだけに、あまり多くのデータを送信したくありません。
doctrine-odm - プロキシが参照ドキュメントを見つけられない場合に MongoDDException を抑制する方法
私たちは Symfony2/DoctrineOdm/MongoDB を使用しています。
if ($doc.referenceOne != null) { ... }
削除/失われたドキュメントを指すMongoDbRefが$doc.referenceOne
含まれている場合、Doctrine Proxy オブジェクトは MongoDBException を発生させます。
例外を発生させる代わりに、プロキシに null を返すように指示することは可能ですか?
詳細な説明:
私たちの文書:
$photo にMongoDbRefが含まれているが、ドキュメントが紛失または削除された場合、
doctrineを実行if ($user.photo) { ... }
すると、MongoDBException が発生します。
アプリケーションはその変数で null 値を処理できるため、例外を抑制したいと考えています。
(例外が 500 ページに伝播してサービスを中断している間、単純にそのエラーをログに記録することができます)
symfony - 教義のODMに特定のアイテムが埋め込まれているすべてのアイテムをクエリするにはどうすればよいですか?
私は何かについてのコメントを持っています、そしてそれらを好きになることは可能です。いいねはとして保存さComments
れEmbedMany(targetDocument=User)
ます。
特定のユーザーが気に入ったすべてのユーザーを照会したいのですComments
が、どうすればよいですか?
私は次のようなことを考えました:
しかし、これはうまくいかないようです。
mongodb - Doctrine MongoDB ODM を使用した地理空間クエリ
ドキュメントの座標プロパティに 2 次元インデックスがあります。mongo シェルを使用すると、次のようにコレクションを照会できます。
そして、予想どおり、次の結果が返されます。
ただし、ドキュメントに従ってDoctrineを使用してまったく同じコレクションをクエリすると、結果が得られません。
私の広告 yaml は次のようになります。
座標ドキュメントは次のようになります。
Doctrine の ODM を使用すると、同じクエリでゼロの結果が返される理由はありますか?
UPDATE #1 Doctrine\MongoDB\Query\Builder::near() L363 に問題があるようです。method パラメーターは 2 番目の値 ($y) を無視します。したがって、最初の値のみが渡されて実行されます。