Schnelle zugehörige Tag-Suche in MongoDB
Frage
Ich habe zwei Dokumentensätze bekommen:
Wikis und WikiTags. Da i flexible Bearbeitung von Tag-Namen wollen mag ich nicht zu embed-Tag selbst in Wiki-Dokument. So speichere ich eine Liste von wiki_tag_ids innerhalb Wiki-Dokuments.
Ich frage mich, was der beste Weg ist verwandte Tags mit diesem Schema zu finden. Durch verwandte Tags ich meine Tags, die in anderen Wikis existieren getaggt mit ausgewählten Tags.
sein Darf ich verwandte Tags in WikiTag Dokument gespeichert werden sollte?
Lösung
Ich schlage vor, Sie sollten WikiTag in der Wiki-Dokument speichern speichern. Mongodb ermöglicht eine einfache Aktualisierung, löschen einzelnes Dokument aus einem verschachtelten Sammlung, das ist mean ‚flexible Bearbeitung von Variablennamen‘.
Sammlung wie folgt aus:
wikis
{
_id,
wikiTags {_id, name, ...},
...
}
So, zum Beispiel, wenn Sie aktualisieren möchten verschachtelt WikiTag Namen mit id = SomeTagId
können Sie:
db.wikis.update( {'wikiTags.id':SomeTagId},
{$set:{'wikiTags.$.name':"New Tag Name"}},
false,
true )
Wenn yoy wollen löschen Artikel aus verschachtelten Array sollten Sie $ unset , neues Element hinzuzufügen: $ push, $ addToSet
Also, ich denke jetzt sehen Sie, dass jede Operation mit verschachtelter Array kann leicht durchgeführt werden. Und wenn die Leistung ist ein Problem -. Verwendung Einbettung
Hope, das hilft.