Lo que trato de hacer es buscar una lista de archivos GridFS consultando un campo de los metadatos. Por ejemplo Tengo un documento de archivo GridFS mirando como:Consulta en MongoDB Metadatos 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"}}
Y quiero consultar todos los archivos que contienen "target_field" = "ABCDEFG". Creé mi consulta de la siguiente manera:
BasicDBObject query = new BasicDBObject("metadata", new BasicDBObject("target_field", "abcdefg"));
// gridFS Object Initialization skipped
List<GridFSDBFile> files = gridFs.find(query);
La lista está siempre vacía. De lo contrario, consultar el nombre de archivo o uploadDate funciona a la perfección. ¿No es posible obtener los archivos GridFS por atributos anidados?
Podría ser posible que mal escrito algo? Esto funciona bien en mi máquina. Estoy usando mongod 2.0.4 y v2.7.3 para el controlador de Java. – Ren