# Collection::add

(No version information available, might only be in Git)

Collection::add — Fügt einer Sammlung Dokumente hinzu

### Beschreibung

public mysql_xdevapi\Collection::add(mixed `$document`): mysql_xdevapi\CollectionAdd

Fügt die angegebenen Dokumente zu einer Sammlung hinzu, wobei diese Methode mehrere Varianten unterstützt. Zu den Möglichkeiten gehören:

1. Hinzufügen eines einzelnen Dokuments als JSON-Zeichenkette.

2. Hinzufügen eines einzelnen Dokuments als Array: `[ 'field' => 'value', 'field2' => 'value2' ... ]`

3. Eine Mischung aus beidem, wobei in einer Operation auch mehrere Dokumente hinzugefügt werden können.

### Parameter-Liste

`document`

  Ein oder mehrere Dokumente, wobei es sich entweder um JSON oder ein Array von Feldern mit den zugehörigen Werten handeln kann. Das Array darf nicht leer sein.

  Der MySQL-Server erzeugt für jedes Dokument automatisch einen eindeutigen `_id`-Wert (empfohlen), der jedoch auch manuell hinzugefügt werden kann. Dieser Wert darf noch nicht vorhanden sein, weil der Vorgang sonst fehlschlägt.

### Rückgabewerte

Gibt ein CollectionAdd-Objekt zurück. Mittels execute() wird ein Ergebnis zurückgegeben, das verwendet werden kann, um die Anzahl der betroffenen Elemente abzufragen, die Anzahl der durch den Vorgang erzeugten Warnungen zu ermitteln oder eine Liste der erzeugten IDs für die eingefügten Dokumente zu erhalten.

### Beispiele

Beispiel #1 mysql_xdevapi\Collection::add()-Beispiel

`<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$collection = $schema->getCollection("people");
// Hinzufügen zweier Dokumente
$collection->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();
// Hinzufügen zweier Dokumente mit einem einzigen JSON-Objekt
$result = $collection->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')->execute();
// Abrufen einer Liste der beim letzten add() erzeugten IDs
$ids = $result->getGeneratedIds();
print_r($ids);
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    Array
    (
        [0] => 00005b6b53610000000000000056
        [1] => 00005b6b53610000000000000057
    )

### Anmerkungen

> Hinweis:

> Wie im Beispiel gezeigt, wird ab MySQL-Server 8.0 eine eindeutige _id erzeugt. Wenn MySQL 5.7 verwendet wird, muss das Feld _id manuell definiert werden.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open