我想做的是通过查询元数据字段来获取 GridFS 文件列表。例如,我得到一个 GridFS 文件文档,如下所示:
{ "_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"}}
我想查询包含“target_field”=“abcdefg”的所有文件。我创建了查询,如下所示:
BasicDBObject query = new BasicDBObject("metadata", new BasicDBObject("target_field", "abcdefg"));
// gridFS Object Initialization skipped
List<GridFSDBFile> files = gridFs.find(query);
该列表始终为空。否则查询文件名或 uploadDate 效果很好。是不是可以通过嵌套属性来获取GridFS文件?
不幸的是我没有让它与嵌套的 BasicDBObjects 一起使用。
最后我使用了点符号,效果很好:
// This query fetches the files I need
BasicDBObject query = new BasicDBObject("metadata.target_field", "abcdefg"));
List<GridFSDBFile> files = gridFs.find(query);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)