Mit MongoDB C # -Treiber einen Knoten aus der übergeordneten Kinderhierarchie suchen und aktualisieren

8

Ich habe eine hierarchische Kategorie Dokument, wie Eltern - Kinder - Kinder und so weiter ....

%Vor%

Wie kann ich in solchen Dokumenten mit dem MongoDB C # -Treiber einen Knoten mit Id = x

finden?

Ich habe so etwas versucht

%Vor%

Aber das deckt nur zwei Ebenen ab. In meinem Beispiel habe ich 7 Ebenen und ich habe keine Beschränkung auf die Tiefe der Ebene

Sobald ich diesen Knoten gefunden habe, muss ich diesen Knoten aktualisieren .

MongoDB-Dokumentation spricht über hierarchische Dokumente, deckt aber nicht mein Szenario ab.

    
HaBo 26.10.2016, 17:41
quelle

3 Antworten

2

In Ihrer Situation, wenn Sie

  

haben keine Einschränkung der Tiefe der Ebene

Sie können keine Aktualisierungsabfrage erstellen. Sie müssen das Schema für Geschäftsdaten ändern:

Ссылка

Wenn die Tiefe fest ist:

%Vor%     
DmitryZyr 04.11.2016, 22:26
quelle
0

In Ihrem Beispieldokument scheint etwas falsch zu sein. Wenn das übergeordnete Element über drei Dateien verfügt: _id, id und value, sollte das Beispiel

lauten %Vor%

} Bitte versuchen Sie die folgende Funktion, wobei Ziel das Dokument und x die ID-Nummer ist, die Sie aktualisieren möchten.

%Vor%

Sonst, wenn der Elternteil 4 Felder hat: _id, id, value und children sollte das Beispiel sein

%Vor%

} Dann können Sie das versuchen:

%Vor%     
CHENGLIANG YE 04.11.2016 05:13
quelle
0

Ich habe eine Version, die auf der Antwort von @DmitryZyr basiert, und verwendet 2 Antwort der Frage Wie erstelle ich eine Ausdrucksbaumstruktur, die IEnumerable & lt; TSource & gt; .Any (...)? aufruft. Danke an Aaron Heusser und Barry Kelly:

%Vor%

Es ist immer noch eine Tiefensuche mit fester Länge, aber die Tiefe kann dynamisch variiert werden. Nur 1 Schritt, um den Code zu aktualisieren, um 1. Ebene, 2. Ebene, .... Und die Tiefe ist unendlich

    
ntohl 10.01.2017 13:43
quelle