从 mongodb 集合中的每个字段获取不同的值

Get distinct values from each field within mongodb collection

如何使用单个查询获取 mongodb 集合中所有字段的不同值。

{ "_id": "1", "Gender": "male", "car": "bmw" , "house":"2bhk" , "married_to": "kalpu"},
{ "_id": "2", "Gender": "female", "car": nan , "house":"3bhk", "married_to": "kalpu"},
{ "_id": "3", "Gender": "female", "car": "audi", "house":"1bhk", "married_to": "deepa"},

这是一个字段很少的示例,在我的实际集合中,每个文档至少有 50 个字段。那么如何有效地查询每个字段中的 return 唯一值呢?在此先感谢您的帮助。

预期答案:

对于每个字段,

  Gender:"male", "female"
  car   :"bmw", "audi",.....
  house : "3hbk","2bhk","1bhk"
  married_to: "kalpu","deepa",....
  ....
  ....
  ...
  

您可以将聚合管道 $group stage$addToSet operator

一起使用
db.collection.aggregate([
  {
    $group: {
      _id: null,
      Gender: {
        "$addToSet": "$Gender"
      },
      car: {
        "$addToSet": "$car"
      },
      house: {
        "$addToSet": "$house"
      },
      married_to: {
        "$addToSet": "$married_to"
      },
      
    }
  }
]) 

Working Example