Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MongoDB是否找到特定的文档?_Java_Mongodb_Querying - Fatal编程技术网

Java MongoDB是否找到特定的文档?

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 (

我正在努力寻找一个特定的文档,因为大多数教程都过时了,而且我的MongoDB版本(最新版本)没有BasicDBObject

我正在使用BSON,这是我的尝试

    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);
}