Java& Mongo:获取字段存在的对象

时间:2013-08-06 15:16:25

标签: java spring mongodb

情况: 我有文档集合,每个文档包含以下字段:" _id"(ObjectId)," userId"(字符串),但它也可以是字段"文件" (对象)。

当我这样做时:

final Query query = new Query();           
query.fields().include("_id");           

final List<File> fileList = mongo.find(query, File.class);

结果我得到fileList所有记录,这很好。

但是,当我这样做时,只能获取记录&#34;文件&#34;字段存在 - 结果是错误。

final Query query = new Query();           
query.fields().include("files");           

final List<File> fileList = mongo.find(query, File.class);

是否因为我试图获取对象字段而发生错误?我如何使用Query或Criteria来解决这个问题?

2 个答案:

答案 0 :(得分:2)

您可以构建此Query以获取包含files的所有文档:

Query.query(Criteria.where("files").exists(true))

答案 1 :(得分:1)

另一种可能性是在方法上使用org.springframework.data.mongodb.repository.Query注释(在使用MongoRepository时有用):

@Query(value="{ files : { $exists : true } }")