4.2.5.2  Dokumente in der DB anlegen

Der Befehl zum Anlegen eines Dokuments in der Marklogic DB sieht folgendermassen aus (Doku): Programmierkonstrukte DB insert

xdmp:document-insert(
  "/alex-test/example-alex.xml",
  <root>Hier steht der Content</root>, 
  <options xmlns="xdmp:document-insert">  
    <metadata>{
      map:map() => map:with("valid-start", "2014-06-03T14:13:05.472585-07:00")
      => map:with("valid-end", "9999-12-31T11:59:59Z")
      }</metadata>
  </options>)
Plain Text

Packt man diese Instruktion in die for-Schleife oben, dann sieht das Konstrukt so aus:

(for $i in (1 to 10) return 
  xdmp:document-insert(
  concat("/alex-test/example-alex-",$i,".xml"),
  <root>Hier steht der Content {$i}</root>, 
  <options xmlns="xdmp:document-insert">  
    <metadata>{
      map:map() => map:with("valid-start", "2014-06-03T14:13:05.472585-07:00")
      => map:with("valid-end", "9999-12-31T11:59:59Z")
      }</metadata>
  </options>)
)
Plain Text

Dokumente kann man einer Collection Programmierkonstrukte DB Collection zuweisen, um sie leichter finden und auswerten zu können. Das geht mit dem folgenden Befehl (Doku) und diesem Schnippsel:

let $root :=
<mein-test>
   <id>{$id}</id>
   <content>Hallo Welt!</content>
</mein-test>,
$options :=
<options xmlns="xdmp:document-insert">  
  <permissions>{xdmp:default-permissions()}</permissions>
  <collections>
    <collection>/alex-test</collection>
  </collections>
</options>,
$fname := concat('/',$id,'_','.xml'),
$td := xdmp:document-insert($fname,$root,$options)
return 
  [...]
Plain Text

Die Dokumente, die mit der Collection alex-test getaggt wurden, kann man sich mit der folgenden Schleife ausgeben lassen:

for $x in collection("/alex-test")
  return
    fn:document-uri($x)
Plain Text