MongoDB distinct查询
时间:2020-02-23 14:40:49 来源:igfitidea点击:
MongoDB distinct方法为指定为输入参数的字段返回一组离散值。
Mongo distinct方法返回离散值数组。
MongoDB distinct
MongoDB与众不同的方法的语法是
db.collection.distinct(field, query)
field:要返回其离散值的字符串类型。
查询:指定要从中检索离散值的文档。
让我们看看使用mongo shell选择不同值的示例。
>db.car.distinct('speed') [ 65, 55, 52, 45 ]
在mongo上,不同示例为car集合中的速度字段选择不同值的数组。
注意,查询参数是可选的。
现在,让我们看一下示例,在该示例中,我们将传递不同的查询参数以选择与查询条件匹配的不同值。
> db.car.distinct('name',{speed:{$gt:50}}) [ "WagonR", "Xylo", "Alto800", "Astar", "Suzuki S-4", "Santro-Xing", "Palio", "Micra" ] >
在MongoDB上方,不同的查询操作会在car集合中找到速度大于50的汽车的名称。
MongoDB distinct 查询 Java程序
考虑以下Java程序对car集合执行不同的操作,该集合为用户指定的字段打印一组离散值。
MongoDBDistinct.java
package com.theitroad.mongodb; import java.net.UnknownHostException; import java.util.List; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.MongoClient; public class MongoDBDistinct { public static void distinct() throws UnknownHostException{ //Get a new connection to the db assuming that it is running MongoClient m1 = new MongoClient(); //use test as a database,use your database here DB db = m1.getDB("theitroad"); //fetch the collection object ,car is used here,use your own DBCollection coll = db.getCollection("car"); //call distinct method and store the result in list l1 List cl1= coll.distinct("speed"); //iterate through the list and print the elements for(int i=0;i<cl1.size();i++){ System.out.println(cl1.get(i)); } } public static void distinctquery() throws UnknownHostException{ MongoClient m1 = new MongoClient(); DB db = m1.getDB("theitroad"); DBCollection coll = db.getCollection("car"); //condition to fetch the car document whose speed is greater than 50 DBObject o1 = new BasicDBObject("speed",new BasicDBObject("$gt",50)); //call distinct method by passing the field name and object o1 List l1= coll.distinct("name", o1); System.out.println("-----------------------"); for(int i=0;i<l1.size();i++){ System.out.println(l1.get(i)); } } public static void main(String[] args) throws UnknownHostException{ //invoke all the methods to perform distinct operation distinct(); distinctquery(); } }
上述MongoDB独特的Java程序的输出为:
65.0 55.0 52.0 45.0 ---------------------- Audi Swift Maruthi800 Polo Volkswagen Santro Zen Ritz Versa Innova