Картографические данные в конвейере агрегации MongoDB - PullRequest
0 голосов
/ 11 марта 2019

Это данные, возвращаемые из моего конвейера агрегации:

/* 1 */
{
    "data" : {
        "_id" : ObjectId("5c8266b8d8c9cd7a89babac6"),
        "updatedBy" : ObjectId("5c2076d62781881e8764a47a"),
        "updatedAt" : ISODate("2019-03-08T13:33:21.659Z"),
        "createdBy" : ObjectId("5c2076d62781881e8764a47a"),
        "createdAt" : ISODate("2019-03-08T12:57:28.683Z"),
        "productName" : "Yellow powder",
        "sku" : "563453534",
        "upc" : "903453453245",
        "__v" : 0,
        "brand" : "",
        "category" : "yellow category",
        "group" : "",
        "handle" : "yellow-grey",
        "imageUrl" : "",
        "inciRawText" : "",
        "specialtyText" : ""
    }
}

/* 2 */
{
    "data" : {
        "_id" : ObjectId("5c7692433dcd874313b9fddb"),
        "sku" : "TESTSKU9",
        "__v" : 0,
        "brand" : "test brand",
        "category" : "test category",
        "createdAt" : ISODate("2019-02-27T13:36:03.027Z"),
        "group" : "testgroup",
        "handle" : "mewo9",
        "imageUrl" : "",
        "inciRawText" : "Inci Raw Text. Long memo field",
        "productName" : "TEST9PROD",
        "publishStatus" : "Unpublished",
        "specialtyText" : "* denotes organic",
        "upc" : "TESTUPC9",
        "updatedAt" : ISODate("2019-02-27T13:36:03.027Z")
    }
}

Конвейер агрегации слишком велик, поэтому я не хотел добавлять его сюда.Я надеюсь, что это нормально, чтобы пропустить эту часть.Теперь я хочу спроецировать эти данные на что-то подобное, используя MongoDB Aggregation

{
        "_id" : ObjectId("5c8266b8d8c9cd7a89babac6"),
        "updatedBy" : ObjectId("5c2076d62781881e8764a47a"),
        "updatedAt" : ISODate("2019-03-08T13:33:21.659Z"),
        "createdBy" : ObjectId("5c2076d62781881e8764a47a"),
        "createdAt" : ISODate("2019-03-08T12:57:28.683Z"),
        "productName" : "Yellow powder",
        "sku" : "563453534",
        "upc" : "903453453245",
        "__v" : 0,
        "brand" : "",
        "category" : "yellow category",
        "group" : "",
        "handle" : "yellow-grey",
        "imageUrl" : "",
        "inciRawText" : "",
        "specialtyText" : ""
    }, {
        "_id" : ObjectId("5c7692433dcd874313b9fddb"),
        "sku" : "TESTSKU9",
        "__v" : 0,
        "brand" : "test brand",
        "category" : "test category",
        "createdAt" : ISODate("2019-02-27T13:36:03.027Z"),
        "group" : "testgroup",
        "handle" : "mewo9",
        "imageUrl" : "",
        "inciRawText" : "Inci Raw Text. Long memo field",
        "productName" : "TEST9PROD",
        "publishStatus" : "Unpublished",
        "specialtyText" : "* denotes organic",
        "upc" : "TESTUPC9",
        "updatedAt" : ISODate("2019-02-27T13:36:03.027Z")
    }

Я уверен, что должен быть метод для этого, я пытаюсь сделать это с помощью оператора $ map, но все жене может этого сделать.

Может кто-нибудь предложить мне какие-нибудь решения?

1 Ответ

2 голосов
/ 11 марта 2019

Этого можно добиться, используя $ replaceRoot оператор агрегирования

db.produce.aggregate( [
   {
     $replaceRoot: { newRoot: "$data" }
   }
] )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...