2016-09-30 2 views
0

Ich habe Elterndokument mit Referenzen. Die Frage ist, es ist in Ordnung, alle referenzierten Dokumente zu löschen und neue einzufügen, statt alte zu aktualisieren, neue einzufügen und entfernte Dokumente zu löschen. In SQL ist es nicht sehr gut, weil der Index fragmentiert wird.ersetzen statt update

+0

Möchten Sie das gesamte Dokument oder nur einige Attribute aktualisieren? –

+0

Nun, stellen Sie sich vor, ich habe eine Rechnung mit referenzierten Produkten. Wenn jemand Rechnung bearbeitet und speichert, möchte ich nicht überprüfen, welche Produkte entfernt, welche von ihnen aktualisiert/eingefügt werden. Ich möchte nur alle alten Produkte entfernen und neue dort anlegen. –

Antwort

0

Wenn Sie beginnen, Dokumente in MongoDB einzufügen, wird jedes Dokument direkt neben dem vorherigen auf dem Datenträger abgelegt. Wenn also ein Dokument größer wird, wird es nicht länger fit blieben in dem Raum war es ursprünglich geschrieben und wird zu einem anderen Teil der Sammlung

i seine besser glauben bewegt werden einhüllen zu entfernen und legen wir sind Ich bin mir nicht sicher, ob die Größe stimmt. Wenn die Größe des Updates größer ist, können wir im Falle einer Verlagerung Probleme mit der Leistung haben.

Wenn ich nicht falsch bin, was Sie versuchen, das Verhalten von Ersatz von Dokumenten zu erreichen, ist, ich glaube, Sie db.collection.findAndModify() verwenden können, muss es Update und Feld entfernen, die Sie Ihren gewünschten erreichen helfen können Verhalten.

Verwandte Themen