Java MongoDB是否找到特定的文档?
我正在努力寻找一个特定的文档,因为大多数教程都过时了,而且我的MongoDB版本(最新版本)没有BasicDBObject 我正在使用BSON,这是我的尝试Java MongoDB是否找到特定的文档?,java,mongodb,querying,Java,Mongodb,Querying,我正在努力寻找一个特定的文档,因为大多数教程都过时了,而且我的MongoDB版本(最新版本)没有BasicDBObject 我正在使用BSON,这是我的尝试 public Document getPlayer(UUID uuid) { Document toFind = new Document("id", uuid); MongoCursor<Document> c = players.find(toFind).iterator(); while (
public Document getPlayer(UUID uuid) {
Document toFind = new Document("id", uuid);
MongoCursor<Document> c = players.find(toFind).iterator();
while (c.hasNext()) {
if (toFind.equals(c)) {
return c;
}
}
return null;
}
公共文档getPlayer(UUID UUID){
文件toFind=新文件(“id”,uuid);
MongoCursor c=players.find(toFind.iterator();
while(c.hasNext()){
if(toFind.equals(c)){
返回c;
}
}
返回null;
}
我完全知道这是错误的,但我只是不知道如何找到有关MongoDB的任何信息。查看
对于常规查询,请使用过滤器
实用程序类
players.find(Filters.eq("id", id))
评论后编辑:当我在这个答案上找到一个绿色钩子时,我想你已经解决了它,但是:确保你的项目中包含了正确的驱动程序版本。具体来说,您需要一个3.x系列的驱动程序来使用更现代的界面 当前的maven依赖项是:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.9.1</version>
</dependency>
org.mongodb
mongo java驱动程序
3.9.1
过滤器
完全限定实际上是com.mongodb.client.model.Filters
您可以使用Spring数据mongodb和maven轻松查询mongodb,如下所示。首先,您需要添加maven依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
假设您的mongoDb文档如下
{
"_id": "123456789",
"playerName":"name1"
}
然后通过扩展MongoRepository类创建一个接口类作为存储库
public interface PlayerRepository extends MongoRepository<Player, String> {
Player findById(String id);
Player findByPlayerName(String playerName);
@Query("{name:{$regex: ?0,$options:'i'}}")
List<Player> findPlayerByNameRegex(String name);
}
public interface PlayerRepository扩展了MongoRepository{
播放器findById(字符串id);
播放器查找ByPlayerName(字符串播放器名称);
@查询({name:{$regex:?0,$options:'i'}})
列出findPlayerByNameRegex(字符串名称);
}
最后,您可以使用它们实现或自动连接(推荐)存储库类。只需实现一个名为findByFiledName的方法,剩下的将实现Spring MongoDb依赖。此外,您还可以使用@Query注释进行自定义查询和筛选。
您也可以参考,因为某些原因我没有Filters类?我正在使用MongoDB 3.9.1
public interface PlayerRepository extends MongoRepository<Player, String> {
Player findById(String id);
Player findByPlayerName(String playerName);
@Query("{name:{$regex: ?0,$options:'i'}}")
List<Player> findPlayerByNameRegex(String name);
}