ich über die Datomic Pull Syntax las hier:Datomic Pull Ausdruck
http://docs.datomic.com/pull.html
Und es erklärt unter Wildcard, die ein Muster wie [*]
wird eine Einheit ziehen und zieht rekursiv seine Entitätsattribute. Wörtliches Zitat:
Die Wildcard-Spezifikation * zieht alle Attribute eines Unternehmens und zieht rekursiv jede Komponente Attribute:
;; pattern
[*]
;; result
{:release/name "The Concert for Bangla Desh",
:release/artists [{:db/id 17592186049854}],
:release/country {:db/id 17592186045504},
:release/gid #uuid "f3bdff34-9a85-4adc-a014-922eef9cdaa5",
:release/day 20,
:release/status "Official",
:release/month 12,
:release/artistCredit "George Harrison",
:db/id 17592186072003,
:release/year 1971,
:release/media
[{:db/id 17592186072004,
:medium/format {:db/id 17592186045741},
:medium/position 1,
:medium/trackCount 2,
:medium/tracks
[{:db/id 17592186072005,
:track/duration 376000,
:track/name "George Harrison/Ravi Shankar Introduction",
:track/position 1,
:track/artists [{:db/id 17592186048829} {:db/id 17592186049854}]}
{:db/id 17592186072006,
:track/duration 979000,
:track/name "Bangla Dhun",
:track/position 2,
:track/artists [{:db/id 17592186048829}]}]}
...
]}
Allerdings, wenn ich dies selbst versuche ich nur db/id
Werte für ref
Arten. Ich muss im Grunde in eine ausführlichere Weise jede ref Art rufen in der pull
Ausdruck, mit so etwas wie folgt aus:
[* {:content/type [:db/ident] :content/locales [:db/ident] :content/groups [*]}]
Und das ist nicht einmal wirklich das Ende, weil :content/groups
selbst ref
Typen innerhalb davon hat . Hat sich das Verhalten von Platzhaltern irgendwann geändert und die Dokumente sind nicht aktuell? Oder mache ich etwas falsch? Gibt es einen besseren (prägnanteren) Weg zu sagen: "rekursiv alles reinziehen"?
ok, gibt es einen Grund, warum ich wählen könnte, ': db/isComponent true' nicht zu verwenden, wenn meine Absicht ist, die ganze Sache jedes Mal hereingezogen zu bekommen? – Kevin
Also von hier lesen: http://blog.datomic.com/2013/06/component-entities.html es scheint, als ob Komponenten auf Unterobjekte aufpassen, die nicht ohne die Eltern selbst existieren. Macht es Sinn, einen Enum-Wert zu haben, der ': isComponent true' hat? – Kevin
von dem, was ich sagen kann, haben alle Enums die gleiche ': db/id', wenn also ein Datensatz zurückgezogen wurde, würde': db/id' auch zurückgezogen werden. Es scheint also wünschenswert zu sein, enum-Werte zu haben: ': db/isComponent true', weil ich nicht jede einzelne enum auf einem Pull-Ausdruck manuell angeben möchte, aber auf der anderen Seite sind sie definitionsgemäß über Entitäten verteilt und also nicht geeignet für ': db/isComponent'. Ist das korrekt? – Kevin