Java&Mongo : get object where field exist

标签 java spring mongodb

情况: 我有文档集合,每个文档都包含这样的字段:“_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/

相关文章:

mongodb - 如何更新多个MongoDB字段

java - 使用 fxml (scenebuilder) 制作的进度条来使用方法中的值

java - 检查是否在android中启用了GPS

java - 给定两个 double ,如何确定它们的商是否准确?

java - 添加到 Set 时按枚举排序

java - hibernate加速插入

javascript - 如何使用JAVA在MONGODB中存储值?

java - 在基本服务上找不到符号

java - 如何在 Spring 配置文件中混合使用 CGLIB 和 JDK 代理?

node.js - Mongoose:使用更新功能时如何对结果列表进行排序