情况: 我有文档集合,每个文档包含以下字段:" _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来解决这个问题?
答案 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 } }")