Skip to content

Commit 8e9f57e

Browse files
committed
fix: Update update_document to preserve datetime fields and ensure proper document replacement
1 parent 6b54a71 commit 8e9f57e

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

backend/services/data_documents_service.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,17 @@ def update_document(
207207
except Exception:
208208
pass
209209
before_doc = collection.find_one({"_id": ObjectId(document_id)})
210-
# Use replace_one instead of update_one to completely replace the document
211-
# This ensures deleted fields are actually removed
210+
if not before_doc:
211+
return None
212+
213+
# Preserve datetime_creation from the existing document
214+
if "datetime_creation" in before_doc:
215+
content["datetime_creation"] = before_doc["datetime_creation"]
216+
217+
# Always update datetime_last_modified to current time
218+
content["datetime_last_modified"] = datetime.now(timezone.utc)
219+
220+
# Use replace_one to completely replace the document while preserving system fields
212221
result = collection.replace_one({"_id": ObjectId(document_id)}, content)
213222
if result.matched_count == 0:
214223
return None

0 commit comments

Comments
 (0)