2017-04-24 5 views
0

こんにちは、私はmongodbでdistict値を取得したいと思います。mongodbに配列を持つ別のクエリ?

この

Name________________Age___________________Salary

X ___________________ 25 ___________________5000

X ___________________ 25 ___________________5000

X ___________________ 26 ___________________5000

Y ___________________ 25 ___________________500私の例のテーブルであります0

Y ___________________ 26 ___________________5000

私はこの

{ 

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

      }] 
    } 

{ 

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

      }] 
    } 

のような結果を取得したい、このような結果を得るためにどのような方法があります。

私のSQLクエリは、私がこの

ようにしようとした

select distinct Name,Age from Table where salary=5000

であるが、これは$group上のINGの際の個別Ageのために、この

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

答えて

2

使用$addToSetのように取得することができません所望の出力を得るためにName

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

私はMongoDBクエリで疑いがあります。 表から(年齢、給与)を選択します。 名前を区別したいだけですが、いずれの列も別名として表示したくないのですが、_id列の値を含めて区別せずにすべての列を表示する必要があります。 – Vinoth

+1

グループの各列に$ pushを使用してください。 '' Salary ':{"$ push": "$ Salary"} ' – Veeram

+0

のようなものはどこに問い合わせをするべきですか? 「給与と年齢」の列にこの回答を追加できますか – Vinoth

関連する問題