「組み込み」セクションは述べています:SQLのようなDatomicエンティティからすべてのフィールドを取得
クエリ言語は、単一conversatonに、あなたが行っている、クライアントサーバーモデル の周りに配向されています両方ともに:
- あなたの基本的な質問に答えてください今月は靴下を買いました。
- レポートや処理に必要な追加情報を復元します。彼らの名前と電子メールアドレスは何ですか?
後者は実際にはクエリではなく、単に機械的なナビゲーション 関連情報です。
2つの異なる側面の直交性がどのように受け入れられているかを理解していますが、多くの場合、その属性がどれであってもエンティティ全体を取得する必要があります。
私の知る限りでは、クエリは、通常、この形式を持つ:
(datomic.api/q '[:find ?name ?age ?email
:where
[?e :myapp/name ?name]
[?e :myapp/age ?age]
[?e :myapp/email ?email]]
(db conn))
私はNの属性を持っているエンティティを検索したい場合は、私は退屈思われ、各クエリでそれらをすべてリストアップするためにそれらを持っていると思いますエラーが発生する可能性があります。
明示的に指定することなく、永続化されたすべてのフィールドを持つエンティティを取得するようにDatomicに指示する方法を教えてください。
カップルのノートは:(1)実体がありません「隠す」属性は、エンティティ属性や関連するエンティティを取得するための怠惰なインターフェイスです。これはパフォーマンスの観点から理解する上で重要です。なぜなら、属性がすべてすぐには見えない理由を説明しています。属性を表示して怠惰の利点を打ち負かすためには、DBからデータムをフェッチする必要があります。 (2)エンティティをマップにマージする必要はありません。すべての属性を取得するには、[touch](http://docs.datomic.com/clojure/#datomic.api/touch)関数を呼び出します。 – camdez