情况: 我有文档集合,每个文档都包含这样的字段:“_id”(ObjectId),“userId”(String),但它也可以是字段“files”(Object)。
当我这样做时:
final Query query = new Query();
query.fields().include("_id");
final List<File> fileList = mongo.find(query, File.class);
结果我得到了包含所有记录的 fileList
,这很好。
但是当我这样做时,仅在"file"字段存在的情况下获取记录 - 结果是错误的。
final Query query = new Query();
query.fields().include("files");
final List<File> fileList = mongo.find(query, File.class);
是否因为我尝试获取对象字段而发生错误?我如何使用查询或条件来解决这个问题?
最佳答案
您可以构造此查询
来获取包含已提交的文件
的所有文档:
Query.query(Criteria.where("files").exists(true))
关于Java&Mongo : get object where field exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084144/