由于大多数教程已经过时,而且我的MongoDB版本(最新版本)没有BasicDBObject,因此我正在努力查找特定文档。
我正在使用BSON,这是我的尝试,
def fitfunc(x, a, b):
return a*x + b
我完全知道这是错误的,但是我只是不知道如何在MongoDB上找到任何信息。
答案 0 :(得分:2)
看http://mongodb.github.io/mongo-java-driver/3.9/javadoc/index.html?overview-summary.html
对于普通查询,请使用Filters
实用工具类
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>
Filters
完全合格,实际上是com.mongodb.client.model.Filters
。
答案 1 :(得分:0)
您可以使用Spring Data MongoDB和maven轻松地查询mongoDb,如下所示。
首先,您需要添加Maven依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
由于它允许映射mongoDB文档和Java POJO,因此创建模型类。
import org.springframework.data.annotation.Id;
public class Player{
@Id
private String id;
private String playerName;
//getters and setters
}
假设您的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);
}
最后,您可以使用它们实施或自动装配(推荐)存储库类。只需实现一个命名findBy FiledName 的方法,其余方法将实现Spring MongoDb依赖性。另外,您可以将@Query批注用于自定义查询和过滤器。 您也可以参考Spring Documentation