Điều tôi đang cố gắng tìm nạp danh sách các tệp GridFS bằng cách truy vấn một trường siêu dữ liệu. Ví dụ: tôi có tài liệu tệp GridFS giống như:Truy vấn trên siêu dữ liệu MongoDB GridFS (Java)
{ "_id" : { "$oid" : "4f95475f5ef4fb269dbac954"} , "chunkSize" : 262144 , "length" : 3077 , "md5" : "f24ea7ac05c5032f08808c6faabf413b" , "filename" : "file_xyz.txt" , "contentType" : null , "uploadDate" : { "$date" : "2012-04-23T12:13:19.606Z"} , "aliases" : null , "metadata" : { "target_field" : "abcdefg"}}
Và tôi muốn truy vấn tất cả các tệp có chứa "target_field" = "abcdefg". Tôi đã tạo truy vấn của mình như sau:
BasicDBObject query = new BasicDBObject("metadata", new BasicDBObject("target_field", "abcdefg"));
// gridFS Object Initialization skipped
List<GridFSDBFile> files = gridFs.find(query);
Danh sách này là rỗng. Nếu không, việc truy vấn tên tệp hoặc uploadDate sẽ hoạt động hoàn hảo. Không phải là nó có thể nhận được các tập tin GridFS bởi các thuộc tính lồng nhau?
Nó có thể có thể là bạn sai chính tả cái gì? Điều này hoạt động tốt trên máy tính của tôi. Tôi đang sử dụng mongod 2.0.4 và v2.7.3 cho trình điều khiển Java. – Ren