在mongodb中使用数组进行独特查询?

时间:2017-04-24 12:27:16

标签: mongodb

您好我想在mongodb中获取distict值。

这是我的示例表

名称________________年龄___________________工资

x ___________________ 25 ___________________ 5000

x ___________________ 25 ___________________ 5000

x ___________________ 26 ___________________ 5000

是___________________ 25 ___________________ 5000

y ___________________ 26 ___________________ 5000

我想得到像这样的结果

    {

        "Name" : "x",
    "Age" : [ 
            {
                25,26

            }]
    }

{

        "Name" : "y",
    "Age" : [ 
            {
                25,26

            }]
    }

有没有办法得到这样的结果。

我的SQL查询是

select distinct Name,Age from Table where salary=5000

我试过这个

但是这不能像这样

db.getCollection('Table').aggregate([
{"$match":{Salary:5000}},
{"$group":{_id:{Name:"$Name",Age:"$Age"}}},
{"$project" : {_id:0, Name:"$_id.Name", Age:"$_id.Age"}}
])

1 个答案:

答案 0 :(得分:2)

$addToSet Age $group时,Name使用db.getCollection('Table').aggregate([ {"$match":{Salary:5000}}, {"$group":{_id:"$Name", "Age":{$addToSet:"$Age"}}}, {"$project" : {_id:0, Name:"$_id", Age:1}} ]) 获取所需的输出。

nsubjpass(submitted, Bills)