問題タブ [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 - 教義: ODM 対 ORM
新しい Doctrine 2.0 プロジェクトで ODM/ORM/ODM と ORM エンティティの混合を使用することを検討しています。ORM (MySQL InnoDB) と ODM (MongoDB) をいつ使用する必要がありますか? 1 つのプロジェクトに混在させる必要がありますか?
私のアプリの疑似構造(Google Readerのようなもの):
- ユーザー{ID、ログイン、パスワード、メール}
- チャネル { ID、URL }
- エントリ { id、channelId、タイトル、本文、日付 }
- entryValue { entryId, userId, 値 }
- userFriend { user1Id, user2Id }
最も一般的な機能:
- getValuesOfNewsByUsers(newsId, [userIdArray])
- getEntriesByUserWithMinValue(userId, minValue)
- areFriends(ユーザー1、ユーザー2)
- getEntryValues(userId, [entryIdArray])
entryおよびentryValueテーブルの数十億行に備える必要があります。
php - ネストされたネストされた埋め込みドキュメントの永続化の問題
更新:これは間違いなくバグで、Jira で問題が発生しました: http://bit.ly/gpstW9
更新 (2011 年 5 月 5 日): jwage の推奨により、カテゴリと投稿の間の参照関係 (埋め込みではなく) に切り替えました。
Doctrine ODM の最新バージョン (Git から新しく) を使用しています。
3 つのレベルのドキュメント (2 つの埋め込み) があります。カテゴリ -> EmbedsMany: 投稿 -> EmbedsMany PostVersion。
PostVersion は、Post によって自動的に処理されます。新しい投稿を作成すると、実際には内部で新しい PostVersion も作成されます。
私の問題は、Doctrine が PostVersions と混同されることです。既存のカテゴリを取得してそれに新しい投稿を追加すると、新しい投稿の PostVersions がカテゴリの $posts コレクションの最初の投稿に追加されます。
ステップバイステップ:
- 新しい投稿 (Post1) とカテゴリを作成します
- Post1 をカテゴリに追加
- パーシスト カテゴリ、フラッシュ、クリア
- カテゴリを取得
- 新しい投稿を作成する (Post2)
- Post2 をカテゴリに追加
- 流す
データベースのこの段階では、1 つのカテゴリと 2 つの投稿があり、各投稿には 1 つの PostVersion があります。ただし、実際には、カテゴリが 1 つ、投稿が 2 つあり、最初の投稿には 2 つの PostVersion があり、2 番目の投稿には PostVersion がありません。
リクエスト中のドキュメント自体は正しいですが、間違っているデータベースに永続化したいだけです。私は何が欠けていますか?
期待される結果:
実結果:
これが私のドキュメントです
カテゴリ.php
Post.php
PostVersion.php
... xdebug で汚れる時が来たと思います。
php - Doctrine ODM / MongoDB : AND クエリで
mongoDB で Doctrine ODM を使用しています。
次のようなクエリを実行しようとしています:
アイデアは、その中にあるすべてのドキュメントを選択することです
私が使用している構文では、次のドキュメントを取得しています
続行する方法、または可能かどうかについてのアイデアはありますか?
php - Doctrine MongoDB ODM Document Proxy を強制的に「元の」ドキュメントに変換する方法は?
ドキュメント User で参照されているドキュメント Person があります。User を取得すると、Person オブジェクトは埋め込まれていませんが、Person プロキシ オブジェクトが埋め込まれています。プロキシを「強制」して「完全な」ドキュメントにする方法はありますか (Person proxy => Person)。
メソッドを呼び出して追加のデータを取得しようとしました (そのため、__load がトリガーされますが、オブジェクトは「プロキシ」バージョンのままです。
ODM のドキュメントよりも、誰かがこれについて詳しく説明してくれることを願っています。
symfony - Symfony2-DoctrineMongoDBBundle-Doctrine \ Common \ Annotations \ AnnotationException
DoctrineMongoDBBundleを使用しようとしていますが、問題が発生しています。
私のconfig.ymlには、次のものがあります。
私のUser.phpクラス:
コマンドを実行すると:
次のエラーが発生します。
[Doctrine \ Common \ Annotations \AnnotationException]
[セマンティックエラー]クラスHALL\HelloWorldBundle \ Document\Userのアノテーション"@Doctrine\ ODM \ MongoDB \ Mapping \ Annotations \ Document"が存在しないか、自動ロードできませんでした。
なぜ何かアイデアはありますか?注釈は明確に参照されています。
mongodb - Doctrine MongoDB geoNear
doctrine-mongodb プロジェクトを書き換えずに geoNear コマンドを実行する方法を確認しようとしています。Expr.php および Builder.php ファイルを調べましたが、geoNear コマンドへの参照が見つかりませんでした。Doctrine MongoDB ODM でこの機能を取得するにはどうすればよいですか?
ありがとう
mongodb - プレーンな php クラスで Doctrine Mongodb ODM を使用できますか?
別のプロジェクトに Doctrine mongodb ODM を使用したいのですが、この ODM を使用してすべての mongodb 関連のデータベース呼び出しを実行したいと考えています。
私のアプリケーション(シンフォニーではない)がユーザーオブジェクトを追加したいとき、Mongodb-ODMで書かれたユーザードキュメントクラスを呼び出したい
ここで、ドキュメントに示されている以下のように、このクラスを個別のphpクラスから呼び出したいと思います....
この $dm= documentmapper を別の php クラスで使用するには、どのような手順が必要ですか?
php - Doctrine Mongo update $pull クエリが機能しない
$pull
更新クエリを使用して (ドキュメントを削除する目的で) ドキュメントへの参照を削除しようとしていますが、何も起こっていないようです。
次のMongoクエリを手動で実行できます
これは正常に動作します。Doctrine の ODM で同じことをしようとしても、期待される結果もエラー メッセージも得られません。これまでの内容は次のとおりです
私が間違っていることについてのヒントはありますか?
php - Doctrine ODM / PHP / MongoDB - 参照された要素をクエリできません
特権を持つイベントがあり、この特権はユーザーを参照します。ユーザーに関連付けられたすべてのイベントを取得しようとしていますが、教義が思い通りに機能していないようです。
これが私のMongoスキーマです
ドクトリン イベント エンティティ:
特権エンティティ:
そして User エンティティ:
次のことを試しましたが成功しませんでした
Event クラスも使用してみましたが、それ以上の成功はありません...確かに何かが欠けていますが、何がわかりません! どんな助けでも大歓迎です。
ありがとう。