在MongoDB中指定返回格式以将值作为数组返回?

为此使用聚合,并使用$group和$addToSet运算符将值添加到数组中

首先让我们创建一个包含文档的集合-

> dbspecifyReturnFormatDemoinsertOne({"Subject":"MongoDB"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefd364ef71edecf6a1f6c0")
}
> dbspecifyReturnFormatDemoinsertOne({"Subject":"MySQL"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefd369ef71edecf6a1f6c1")
}
> dbspecifyReturnFormatDemoinsertOne({"Subject":"SQL Server"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefd36fef71edecf6a1f6c2")
}

以下是在find()方法的帮助下显示集合中所有文档的查询-

> dbspecifyReturnFormatDemofind();

输出结果

{ "_id" : ObjectId("5cefd364ef71edecf6a1f6c0"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5cefd369ef71edecf6a1f6c1"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5cefd36fef71edecf6a1f6c2"), "Subject" : "SQL Server" }

以下是指定返回格式的查询-

> dbspecifyReturnFormatDemoaggregate([
   {
      "$group": {
         "_id": 0,
         "Subject": {
            "$addToSet": "$Subject"
         }
      }
   },
   {
      "$project": {
         "_id": 0,
         "Subject": 1
      }
   }
]);

输出结果

{ "Subject" : [ "SQL Server", "MySQL", "MongoDB" ] }