MongoDB Java中include方法未定义问题求助(MongoDB 3.6.3)
解决MongoDB Java驱动中
include()方法未定义的问题 嘿,我来帮你搞定这个报错!你遇到的include()方法未定义的问题,本质是因为没有正确导入MongoDB Java驱动里负责投影操作的工具类方法。
问题原因
你代码里用到的include()是MongoDB Java驱动中com.mongodb.client.model.Projections类提供的静态方法,直接写include()的话,编译器找不到这个方法,除非你提前导入了对应的静态方法,或者通过类名来调用它。
两种解决方案
方案1:导入静态方法
在你的Java文件顶部添加静态导入语句:
import static com.mongodb.client.model.Projections.include; // 顺便说一句,你用到的ne()方法也需要来自Filters类,同样要静态导入 import static com.mongodb.client.model.Filters.ne;
这样你原来的代码就可以正常运行了,不需要修改调用逻辑。
方案2:通过类名直接调用
如果你不想用静态导入,也可以直接通过Projections类名来调用include()方法,同时记得导入Projections类:
import com.mongodb.client.model.Projections; import com.mongodb.client.model.Filters; // 修改你的查询代码 FindIterable<Document> findIterable = collection.find(Filters.ne("ressort","A")) .projection(Projections.include("ressort", "date"));
这样修改后,Eclipse就不会再提示方法未定义的错误啦,你的查询也能正确实现类似SQL中SELECT _id, ressort, date from sample WHERE ressort != "A"的效果(默认情况下_id字段会自动返回,如果你想排除它的话,可以用excludeId()方法配合)。
内容的提问来源于stack exchange,提问作者SHAISTA SULTANA
相关产品推荐
相关产品推荐

