Wie finden Sie die referenzierte Dokument in Doctrine MongoDB ODM mit?
Habe ich ein Dokument in meinem "params" - Kollektion wie diese:
{
"_id": ObjectId("4d124cef3ffcf6f410000037"),
"code": "color",
"productTypes": [
{
"$ref": "productTypes",
"$id": ObjectId("4d120a2d2b8d8d3010000000"),
"$db": "test"
}
]
}
das referenzierte Dokument ist:
{
"_id": ObjectId("4d120a2d2b8d8d3010000000"),
"code": "car"
}
Ich bin mit DoctrineODM zu Holen, die "param" - Dokumente, die referenziert "productType" ist "Auto". Ich bin mit diesem code:
$query = $dm->createQuery('Cms\Model\Param');
$query->field('productTypes.code')->equals('car');
$result = $query->execute();
var_dump($result);
aber das Ergebnis ist ein leeres array. Wie kann ich dies tun?
- Welche Datenbank Sie sich verbinden? Es ist nicht 'test' oder 'admin' Recht?
- Nein. es ist kein test oder admin. ich änderte den Namen.
- Können wir Ihre Dokument-Klassen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit ReferenceMany oder ReferenceOne Sie können keine Abfrage von jedem Referenz-Bereich, mit Ausnahme Referenz Dokument-id.
Wenn Sie brauchen, Abfrage auf
code
von referenzierten Kollektion, die Sie verwenden solltenEmbedMany
stattReferenceMany
.In diesem Fall wird Ihr Dokument:
Und folgende Abfrage funktioniert:
Auch wenn Ihr "ProductType" code ist einzigartig, können Sie es verwenden, anstatt
MongoId
, in diesem Fall können Sie die Abfrage auf $id:Referenzierte Dokument:
Abfrage:
Müssen Sie die Referenzen () - Methode der Query-Builder für eine @MongoDB\ReferenceOne wie https://doctrine-mongodb-odm.readthedocs.org/en/latest/reference/query-builder-api.html
PS: verwenden Sie includesReferenceTo() eine @MongoDB\ReferenceMany