2016-05-13 2 views
0

は、私は、この文書を持っている想像MongoDBのドキュメントを検索し、重複を除外する:同時に

{name:'pep', team:'barcelona', age:24} 
{name:'boris', team:'madrid', age:52} 
{name:'erdem', team:'barcelona', age:41} 
{name:'robert', team:'barcelona', age:19} 

私はチームの結果20歳以上と明確なことで、このリストをフィルタリングしたいので、私はこれを持っていると思います結果:

{name:'pep', team:'barcelona', age:24} 
{name:'boris', team:'madrid', age:52} 

MongoDBでこれを行うにはどうすればよいですか?

+0

? – styvane

+0

「バルセロナ」チーム(pep)との結果は既にあります。 – R01010010

+0

そしてなぜあなたは "erdem"ではなく "pep"を選んだのですか?あなたの文書はソートされているのですか? – styvane

答えて

0

アグリゲーションパイプラインにアクセスできる方法は、.aggregateです。パイプラインの最初の段階は、条件に一致しない文書を除外する段階のです。パイプラインの最終段階は$group段階で、文書をグループ化してteamとし、$firstまたは$lastアキュムレータ演算子を使用して、各グループの最初または最後の文書を返します。 "エルデム" に何が起こった

db.collection.aggregate([ 
    { "$match": { "age": { "$gt": 20 } } }, 
    { "$group": { "_id": "$team", "doc": { "$first": "$$ROOT" } } } 
]) 
+0

ありがとうございますが、私はそれを試して "errmsg"を取得します: "例外:FieldPathのフィールド名は '$'で始まらないかもしれません。 – R01010010

+0

あなたが試したことを示してください。 – styvane