Пн go дБ Совокупный преобразовать массив в строку - PullRequest
0 голосов
/ 14 января 2020

есть коллекция с данными


date_new:Array


Используя агрегацию mongodb, как преобразовать в строку, подобную этой, если есть пустая строка, преобразуйте ее в " "



date_new:Array
    0: " "

1 Ответ

1 голос
/ 15 января 2020

Пожалуйста, попробуйте это:

db.yourCollectionName.aggregate([{
    $addFields:
    {
        date_new: {
            $arrayToObject:
            {
                $map:
                {
                    input: "$date_new",
                    as: "each",
                    in: [{ $toString: { $indexOfArray: ["$date_new", '$$each'] } }, '$$each']
                }
            }
        }
    }
}])

Сбор данных:

/* 1 */
{
    "_id" : ObjectId("5e1e2a74d3c98f2a7100fd44"),
    "date_new" : [ 
        "abc", 
        "def", 
        ""
    ]
}

/* 2 */
{
    "_id" : ObjectId("5e1e2f25d3c98f2a7100fd45"),
    "date_new" : []
}

Результат:

/* 1 */
{
    "_id" : ObjectId("5e1e2a74d3c98f2a7100fd44"),
    "date_new" : {
        "0" : "abc",
        "1" : "def",
        "2" : ""
    }
}

/* 2 */
{
    "_id" : ObjectId("5e1e2f25d3c98f2a7100fd45"),
    "date_new" : {}
}
...