2016-04-04 2 views
3

Я пытаюсь преобразовать документы, которые выглядят примерно такМогу ли я преобразовать документ MongoDB в массив в массиве?

{ "_id": 1, 
    "created_at": DateTimeObject, 
    "daily": [{ "impressions":13, 
       "clicks": 13, 
       "day": "2015-01-01" }, 
      { "impressions":15, 
       "clicks": 15, 
       "day": "2015-01-02" }, 
      { "impressions":20, 
       "clicks": 20, 
       "day": "2015-01-03" }] 
} 

в

{ "_id": 1, 
    "impressions": [["2015-01-01", 13], 
        ["2015-01-02", 15], 
        ["2015-01-03", 20]], 
    "clicks": [["2015-01-01", 13], 
      ["2015-01-02", 15], 
      ["2015-01-03", 20]] } 

В настоящее время с помощью раскрутить и группы я могу получить данные в приведенной ниже форме

{ "_id": 1, 
    "impressions": [{ "date": "2015-01-01", "value":13], 
        {"date":"2015-01-02", "value":15}, 
        {"date":"2015-01-03", "value":20}], 
    "clicks": [{"date": "2015-01-01", "value":13}, 
      {"date": "2015-01-01", "value":15}, 
      {"date": "2015-01-01", "value":20}] } 

I не хотите делать это за пределами db, потому что есть около 150-200 строк диаграммы, которые должны быть созданы из похожих документов и предпочли бы j У нас есть трансформация.

EDIT: Возможно ли это с уменьшением карты?

+0

Вы можете вставить свои данные в необходимую схему. – Simulant

+0

@Simulant да, я мог бы, но этот формат не используется и для других запросов. Поэтому я не думаю, что это вариант на данный момент – heaven00

+0

@Simulant это можно сделать, используя карту уменьшить? – heaven00

ответ

0

Mongodb не может поддерживать внутренний массив. вам нужно писать только с размоткой и группой.

+1

Есть ли для этого какая-нибудь работа? – heaven00

+0

По мне, вы должны написать, как вы сказали в последнем коде. –

+0

Последнее средство :) – heaven00

Смежные вопросы