从 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"
},
}
}
])
如何使用单个查询获取 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"
},
}
}
])