Tôi có các tệp được lưu trữ trong MongoDB bằng cách sử dụng GridFS. Tôi cần xóa một số tệp đó bằng ID, từ trình bao JavaScript. Tôi cần xóa một tệp duy nhất bằng ID của nó. Tôi nghĩ rằng tôi chỉ có thể làm điều này:MongoDB loại bỏ các đối tượng GridFS khỏi shell
db.fs.files.remove({_id: my_id});
Điều này hoạt động ở một mức độ nào đó; nó loại bỏ các tập tin từ bộ sưu tập fs.files
nhưng không loại bỏ các khối chính nó từ bộ sưu tập fs.chunks
. Lý do tôi biết đó là vì tôi kiểm tra độ dài của cả hai bộ sưu tập trước và sau trong RockMongo.
Tôi có thể đi qua các phần và xóa những phần đang đề cập đến tệp đó, nhưng có cách nào tốt hơn, tích hợp để thực hiện điều đó không?
Tôi hiểu rồi. Đáng buồn thay, tôi không thể sử dụng mongofiles vì tôi chỉ có ID của tệp mà tôi muốn xóa. Bạn có thấy trước bất kỳ vấn đề nào tôi có thể xóa bằng cách xóa các khối phù hợp không? –
Bạn có cần làm điều này thông qua trình bao không? Tại sao không kết nối với tài xế bằng ngôn ngữ bạn chọn? Và không, theo như tôi biết nó sẽ là ok để làm một cái gì đó như 'db.fs.chunks.remove ({files_id: my_id});' và sau đó 'db.fs.files.remove ({_ id: my_id}) ; ' –
Tôi muốn làm điều đó từ trình bao nhưng tôi sẽ sử dụng ngôn ngữ với trình điều khiển. Cảm ơn! –