Ich arbeite derzeit an einem Projekt, wo wir heute Couchebase 4.1 für eine eCommerce-Website verwenden.Couchbase 4.5 zurück Teil des Dokuments
Ich möchte die gesamte Kategoriestruktur unserer Websites in Couchbase als einzelnes Dokument speichern und dann nach einer bestimmten Kategorie suchen und diese Kategorie in einigen Fällen zurückgeben. In anderen Fällen möchte ich die Kategorie und ihre untergeordneten Kategorien zurückgeben.
Ich bin mir ziemlich sicher, dass ich den Array Indexeer verwenden muss, um diese Arbeit effizient zu machen, aber ich bin ziemlich neu in Couchbase, so dass ich nicht sicher bin, wie es strukturiert sein sollte (oder sogar wenn es möglich ist).
Teil meiner Dokument sieht wie folgt aus (es gibt 4 Ebenen in der Struktur und ca. 8-10 Top-Level-Kategorien):
{
"Categories": [
{
"DisplayName": "Category One",
"Id": 1,
"Categories": [
{
"DisplayName": "Child category",
"Id": 10,
"Categories": [
{
"DisplayName": "Child child category",
"Id": 100,
"Categories": [
{
"DisplayName": "Child child child category",
"Id": 1000
},
{
"DisplayName": "Sibling child category",
"Id": 1001
}
]
},
{
"DisplayName": "Child",
"Id": 101,
"Categories": [
{
"DisplayName": "Another child category",
"Id": 2001
}
]
}
]
}
]
}
]
}
Wenn ich für Id abfragen = 100 Ich möchte mein Ergebnis haben so aussehen:
{
"DisplayName": "Child child category",
"Id": 100,
"Categories": [
{
"DisplayName": "Child child child category",
"Id": 1000
},
{
"DisplayName": "Sibling child category",
"Id": 1001
}
]
}
In einigen Fällen bin ich nicht interessiert, die Kinder zu haben. Ich habe versucht, meine Abfrage mit dem Array (N1QL) zu erstellen, um in meine Arrays auszuwählen, aber ich bin mir nicht sicher, ob es sogar möglich ist, wenn Ebenen von komplexen Objekten haben.
Kann mir eine Anleitung geben, wie das möglich ist (auch wenn es ist?). Wir verwenden den Couchbase .NET Client.
Mit freundlichen Grüßen Martin
subdoc * könnte * eine gute Passform, aber es ist nicht für die Abfrage Zwecke: Sie ** müssen den Weg (e) wissen, die Sie wollen abrufen **. Wenn die Dokumentstruktur jedoch so geändert werden kann, dass das Stammobjekt ein Wörterbuch ist, 1 Eintrag pro Kategorie, wobei der Attributname die Kategorie-ID ist, könnte dies funktionieren. –