Mongodb Mongo db聚合将数组转换为字符串

Mongodb Mongo db聚合将数组转换为字符串,mongodb,mongodb-query,aggregation-framework,aggregate-functions,Mongodb,Mongodb Query,Aggregation Framework,Aggregate Functions,收集数据 date_new:Array 使用mongodb聚合如何转换为这样的字符串,如果有空字符串,请将其转换为“” 请试试这个: db.yourCollectionName.aggregate([{ $addFields: { date_new: { $arrayToObject: { $map: {

收集数据


date_new:Array


使用mongodb聚合如何转换为这样的字符串,如果有空字符串,请将其转换为
“”

请试试这个:

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" : {}
}
结果:

/* 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" : {}
}

您能用json向我展示您的集合的输出吗?@theUnknown:请检查下面的答案,我有几个问题,
date\u new:[0:'',1:'']
,因此它必须是一个对象数组
date\u new:[{0:'},{1:'}]
,或者是带有对象的数组,其元素如下所示。如果有空字符串,您所说的
是什么意思?请将其转换为“
?”??我们正在转换数组,为什么会有空字符串?您是说
date\u new
中的元素是空字符串吗?