2017-10-05 3 views
0

に基づく配列で結果を分割 - 三つの異なる文書で:MongoDBのデータは次のようになりますプロパティ

{ "location": "X", // LOCATION X 
    "property1": "value", 
    "property2": "value"} 

{ "location": "X", // LOCATION X 
    "property1": "value", 
    "property2": "value"} 

{ "location": "Y", // LOCATION: Y 
    "property1": "value", 
    "property2": "value"} 

エントリは場所によってソートされなければならないと同じ場所を持っているすべてのエントリがすべて同じにする必要がありますアレイ。

この例では、mongodbクエリは、場所が"X"に等しいデータと、場所が"Y"に等しいエントリが1つだけある別の配列を含む配列を返します。

私はフロントエンドでその作業をしたくありません。 Node.jsを使用して、私はどのようにしてmongodbを実行しますか?

+1

サンプルデータは、1つのドキュメントまたは3つの分離されたドキュメントのフィールドですか? – barbakini

+0

@barbakiniそれは3つの別々の文書です、私は質問を更新します –

答えて

2

あなたがオブジェクト全体をしたい場合は、その https://docs.mongodb.com/manual/reference/operator/aggregation/group/

db.myCol.aggregate(
    [ 
     { 
     $group : { 
      _id : "$location", entries:{$push: {property1:"$property1", property2:"$property2"}} 
    } 
     } 
]) 

ためのMongoDB集約フレームワークを使用して置き換えることができます
{property1:"$property1", property2:"$property2"}

"$$ROOT"

db.myCol.aggregate(
    [ 
     { 
     $group : { 
      _id : "$location", entries:{$push: "$$ROOT"} 
    } 
     } 
]) 
関連する問題