您可以使用distinct()来获取选择distinct的等效项。首先让我们创建一个包含文档的集合-
> db.distinctNameAndAgeDemo.insertOne({"ClientFirstName":"John","Age":23}); { "acknowledged" : true, "insertedId" : ObjectId("5cd12759e3526dbddbbfb60b") } > db.distinctNameAndAgeDemo.insertOne({"ClientFirstName":"Larry","Age":25}); { "acknowledged" : true, "insertedId" : ObjectId("5cd12768e3526dbddbbfb60c") } > db.distinctNameAndAgeDemo.insertOne({"ClientFirstName":"David","Age":25}); { "acknowledged" : true, "insertedId" : ObjectId("5cd12773e3526dbddbbfb60d") } > db.distinctNameAndAgeDemo.insertOne({"ClientFirstName":"Carol","Age":26}); { "acknowledged" : true, "insertedId" : ObjectId("5cd1277ee3526dbddbbfb60e") } > db.distinctNameAndAgeDemo.insertOne({"ClientFirstName":"Sam","Age":25}); { "acknowledged" : true, "insertedId" : ObjectId("5cd12793e3526dbddbbfb60f") } > db.distinctNameAndAgeDemo.insertOne({"ClientFirstName":"Larry","Age":25}); { "acknowledged" : true, "insertedId" : ObjectId("5cd127a3e3526dbddbbfb610") } > db.distinctNameAndAgeDemo.insertOne({"ClientFirstName":"Carol","Age":26}); { "acknowledged" : true, "insertedId" : ObjectId("5cd127aae3526dbddbbfb611") }
以下是在find()方法的帮助下显示集合中所有文档的查询-
> db.distinctNameAndAgeDemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5cd12759e3526dbddbbfb60b"), "ClientFirstName" : "John", "Age" : 23 } { "_id" : ObjectId("5cd12768e3526dbddbbfb60c"), "ClientFirstName" : "Larry", "Age" : 25 } { "_id" : ObjectId("5cd12773e3526dbddbbfb60d"), "ClientFirstName" : "David", "Age" : 25 } { "_id" : ObjectId("5cd1277ee3526dbddbbfb60e"), "ClientFirstName" : "Carol", "Age" : 26 } { "_id" : ObjectId("5cd12793e3526dbddbbfb60f"), "ClientFirstName" : "Sam", "Age" : 25 } { "_id" : ObjectId("5cd127a3e3526dbddbbfb610"), "ClientFirstName" : "Larry", "Age" : 25 } { "_id" : ObjectId("5cd127aae3526dbddbbfb611"), "ClientFirstName" : "Carol", "Age" : 26 }
以下查询等效于`collectionName中的select different(name),其中age =“ 25”-
> db.distinctNameAndAgeDemo.distinct("ClientFirstName", {"Age": 25});
这将产生以下输出-
[ "Larry", "David", "Sam" ]
在上方,我们显示了年龄25岁的客户名称。