使用$addToSet运算符可确保没有重复项添加到集合中。首先让我们创建一个包含文档的集合-
> db.getDistinctDemo.insertOne({"Values":[100,200]}); { "acknowledged" : true, "insertedId" : ObjectId("5cef69f9ef71edecf6a1f69d") } > db.getDistinctDemo.insertOne({"Values":[300,100]}); { "acknowledged" : true, "insertedId" : ObjectId("5cef6a07ef71edecf6a1f69e") }
在find()
方法的帮助下显示集合中的所有文档-
> db.getDistinctDemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5cef69f9ef71edecf6a1f69d"), "Values" : [ 100, 200 ] } { "_id" : ObjectId("5cef6a07ef71edecf6a1f69e"), "Values" : [ 300, 100 ] }
以下是在MongoDB中获取不同级别的数组字段的查询-
> db.getDistinctDemo.aggregate([ { "$group": { "_id": 0, "MyValues": { "$addToSet": "$Values" } } } ]);
这将产生以下输出-
{ "_id" : 0, "MyValues" : [ [ 300, 100 ], [ 100, 200 ] ] }