Tôi có một xml khá lớn (> 10mb trong kích thước & 40+ yếu tố). Hiện tại chúng tôi lưu trữ xml như vậy trong Oracle db và sử dụng xquery để truy vấn và truy xuất các phần của xml. Quá trình này diễn ra chậm và có nhiều cuộc gọi db. Chúng tôi đang khám phá mongodb để lưu trữ xml này và truy vấn nó. Tôi vừa chuyển đổi xml thành json và được nạp vào bộ sưu tập mongo và nó lưu trữ dữ liệu json lớn trong nháy mắt. Và nó lưu trữ các nút xml dưới dạng tài liệu lồng nhau. Nhưng khi tôi truy vấn (sử dụng tìm) cho một phần tử bên trong nhất, nó luôn trả về toàn bộ tài liệu, chứa các nút có giá trị phần tử không khớp. Tôi hy vọng chỉ có vài nút khớp với giá trị nút đã cho. Hãy cho tôi biết nếu có cách nào tốt nhất để lưu trữ các tệp xml lớn như vậy trong tệp tin mongo db. Và cũng cho tôi biết cách truy xuất các nút bên trong có các giá trị chính xác được chỉ định trong truy vấn. Cảm ơn trước.Lưu trữ XML lớn trong MongoDB
Trả lời
Đây là hành vi lọc tài liệu được nhúng nhiều cấp, thông thường bộ lọc phù hợp sẽ trả lại toàn bộ tài liệu chứ không phải tập con.
Kiểm tra câu trả lời của tôi cho mongodb-querying-array-elements-within-a-document và how-to-find-the-matched-record-in-mongodb để biết thêm
Có thể bạn có thể thêm các lược đồ mẫu xml hiện bạn có, ai đó sẽ giúp bạn cấu trúc ứng dụng.
Có một số sự kiện, bạn nên lưu ý:
Số 1- MongoDB sẽ chỉ trả lại toàn bộ tài liệu tuỳ thuộc vào việc đạt hay không, không có tính năng quay trở lại chỉ một phần của nó (10 Tháng 10 năm 2011) và nếu bạn cần lọc, bạn phải triển khai nó bằng mã của riêng bạn.
Số 2- chú ý đến elemmatch từ khóa. Nó chỉ để tìm kiếm một số lần truy cập chỉ trong cùng một tài liệu phụ nhưng không phải là toàn bộ tài liệu, vì vậy bạn có thể bị nhầm lẫn ở đây.
Số 3 - không có chiến lược nào đúng để chia tổng hợp của bạn thành bộ sưu tập trong mongo so với RDBMS-s. Vì vậy, biểu diễn dữ liệu khác nhau có thể giải quyết trường hợp của bạn.
Số 4 - mặc dù số 3 nhận xét về "không đúng cách", có một khuyến nghị chung để giữ tài liệu của bạn ít hơn 10 MB kích thước
Bạn nên nhìn vào cơ sở dữ liệu XML Sausalito: http://www.28msec.com. Nó đang sử dụng MongoDB làm kho dữ liệu.
Bạn đã từng nghĩ về việc thử Cơ sở dữ liệu XML cập nhật, chẳng hạn như BaseX (http://basex.org)? Nó có thể cung cấp cho bạn kết quả tốt hơn nhiều, đặc biệt nếu bạn đã sử dụng XQuery trước đó.
Tôi gặp vấn đề tương tự. Trong trường hợp của tôi, nút cấp cao nhất trong mỗi tệp XML luôn chứa một danh sách lớn các nút nhỏ hơn, vì vậy tôi đã lưu trữ các mục đó thay thế. Để làm điều đó, tôi đã viết công cụ dòng lệnh xml-to-json của riêng mình. Tôi đã sử dụng nó để chuyển đổi 10GB dữ liệu XML thành JSON, theo định dạng mà mongoimport có thể ăn.
- 1. Lưu trữ các tài liệu rất lớn trong MongoDB
- 2. Lưu trữ xml bên trong xml
- 3. Đường ray: Lưu trữ JSON trong MongoDB
- 4. Làm thế nào để lưu trữ số lớn trong MongoDB với Node.js
- 5. Lưu trữ tệp trên đĩa hoặc MongoDB
- 6. Tổng dung lượng lưu trữ MongoDB
- 7. Lưu trữ mảng với Doctrine và MongoDB
- 8. MongoDB có thể được lưu trữ trong quá trình không?
- 9. Lưu trữ hình ảnh trong cơ sở dữ liệu MongoDB
- 10. Lưu trữ các đa giác GeoJSON trong MongoDB
- 11. C++ Tăng Dung lượng Lưu trữ Lớn
- 12. Lưu trữ XSLT trong SQL Server 2005 với loại xml?
- 13. Lưu trữ thứ nguyên trong tệp xml trong Android
- 14. Kho lưu trữ XML; Lưu() hay không để Save()
- 15. lưu trữ các tệp lớn trong máy chủ sql
- 16. Lưu trữ và làm việc với số lớn trong C
- 17. Lưu trữ các số nguyên rất lớn trong MySQL
- 18. lưu trữ xml bên trong đối tượng json
- 19. Lưu trữ ID có thể chia sẻ trong mảng XML
- 20. cách sử dụng MongoDB để lưu trữ tin nhắn ejabberd?
- 21. MongoDB: Lỗi thực thi được lưu trữ hàm JavaScript
- 22. Lưu trữ một chuỗi hoặc chuỗi ký tự rất lớn?
- 23. Lưu trữ ma trận lớn nhưng cấp thấp hiệu quả
- 24. Lưu trữ hình ảnh có kích thước lớn
- 25. Kho lưu trữ rất lớn với SCM nhựa
- 26. Lưu trữ Thế giới trò chơi 2D lớn
- 27. Tách một tệp XML lớn trong Python
- 28. Lưu trữ hình ảnh trong Mongodb phục vụ chúng với Nodejs
- 29. Lua so với XML để lưu trữ dữ liệu
- 30. Kho lưu trữ ngoại tuyến lớn với Sencha Touch 2
Bạn có thể sử dụng các phép chiếu để lấy một phần tài liệu: https://docs.mongodb.com/v3.2/tutorial/project-fields-from-query-results/ –