11

MongoDb の $project 集計演算子がドキュメントを配列に再構築することは可能ですか?

これが私がこれまでにしたことです:

var pipeline = [];
var project = {
    $project : {
        x: "$_id", 
        y: "$y" ,
        _id : 0
    }
};
pipeline.push(project);
model.aggregate( pipeline, callback);

これにより、次の形式の出力が得られます。

[
  { 
   x: '...',
   y: '...'
  }
 ....
]

私はを頂きたい:

[
   ['..','..']
   ....
]

出力を反復することで簡単に再構築できますが、集計自体がオブジェクトではなく配列を返すことができるかどうかを知りたいと思っています。

4

2 に答える 2

4

$push 演算子を試すことができます。

たとえば、次のようなドキュメントがあるとします。

{ _id: <something>, y: 5 } 

mongo シェルで、次のように入力すると

db.model.aggregate( [ { $group: { _id: null, newArrayField: { $push: {  x: "$_id", y: "$y"  } } } } ] )

あなたは得るでしょう:

{
    "result" : [
        {
            "_id" : null,
            "newArrayField" : [
                {
                    "x" : ObjectId("5265dd479eb4b1d4289cf222"),
                    "y" : 5
                }
            ]
        }
    ],
    "ok" : 1
}

$push オペレーターの詳細については、http://docs.mongodb.org/manual/reference/operator/aggregation/push/を参照してください。

于 2013-10-22T02:10:00.957 に答える