gpt4 book ai didi

java - 在java中的mongo查询中使用distinct

转载 作者:行者123 更新时间:2023-12-02 03:51:47 24 4
gpt4 key购买 nike

我正在尝试在java中对mongodb使用不同的查询。查看此链接,它说我可以只传递字段名称:

https://api.mongodb.org/java/3.0/com/mongodb/DBCollection.html#distinct-java.lang.String-

所以我有:

searchResults = playerCollection.distinct("team");

但它说它无法解析方法distinct(java.lang.String)

看来我必须输入另一个类参数。但我不想要结果的任何子集。我只想要所有不同的团队。

更新:我如何实例化集合:

uri = new MongoClientURI("mongodb://<MongoURI>");
mongoClient = new MongoClient(uri);
mongoDB = mongoClient.getDatabase(uri.getDatabase());
playerCollection = mongoDB.getCollection("players");

最佳答案

您尝试使用的方法是为 DBCollection 定义的类,但您将其称为 MongoCollection<Document>类对象。因此会出现错误,因为两个类都具有名称相同但签名不同的方法。使用您想要的方法的方法是更改​​实例化数据库和集合对象的方式。

uri = new MongoClientURI("mongodb://<MongoURI>");
mongoClient = new MongoClient(uri);

//http://api.mongodb.org/java/3.0/com/mongodb/DB.html
// create a object of the DB class
mongoDB = mongoClient.getDB(uri.getDatabase());

//http://api.mongodb.org/java/3.0/com/mongodb/DB.html#getCollection-java.lang.String-
playerCollection = mongoDB.getCollection("players");

// now that you have a DBCollection object you can use the distinct(String) method
searchResults = playerCollection.distinct("team");

此外,v3.0 ( http://api.mongodb.org/java/3.0/deprecated-list.html#class ) 的弃用列表不包括 DB也不是 DBCollection类,所以你应该没问题。

关于java - 在java中的mongo查询中使用distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35816963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com