Возможно ли, что mongodb $project возвращает массив? - программирование
Подтвердить что ты не робот

Возможно ли, что mongodb $project возвращает массив?

Возможно ли, чтобы оператор агрегации проекта MongoDb $реструктурировал документ в массив?

Вот что я сделал до сих пор:

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

Это дает мне результат формы:

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

Я бы хотел:

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

Я могу легко реструктурировать вывод, итерации его, но очень любопытно узнать, может ли агрегат сам возвращать массив вместо объекта.

4b9b3361

Ответ 1

Вы можете попробовать с помощью оператора $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/