【问题标题】:Mongo 4.2 error out stage requires a string argument, but found objectMongo 4.2 错误输出阶段需要一个字符串参数,但找到了对象
【发布时间】:2021-10-18 06:56:09
【问题描述】:

我正在运行当前的 Mongo 查询并收到此错误: { "message" : "$out 阶段需要一个字符串参数,但找到了对象", "operationTime" : "时间戳(1634539335, 2)", “好”:0, “代码”:14, "codeName" : "类型不匹配", “$clusterTime”:{ "clusterTime" : "时间戳(1634539335, 2)", “签名” : { “哈希”:“sP5j8mWdcjkUzZ3iHkg3obPhjMw=”, “keyId”:“6985187295267651587” } }, “名称”:“MongoError” }

我使用此代码较早地复制到其他 s3 存储桶并且没有问题。

有谁知道问题出在哪里?

var startDate = ISODate("2021-04-10");
var endDate = ISODate("2021-04-11");
var currDate = ISODate()
publishersId.forEach(publisherId =>
{
    for (var d = startDate; d <= endDate; d.setDate(d.getDate() + 1)) {
        print(publisherId + "_" + d);
        db.direct_client_extended_alerts_dl.aggregate([
        {
            "$match":
                { "publisher_id":publisherId,"created_date": d}
        },
        {
            "$out":
            {
            "s3": {
                "bucket": "mongo-datalake-prod",
                 "filename": {
                    "$concat": [
                     "direct_client_extended_alerts/", {"$toString": "$publisher_id"}, "/",
                     {"$toString": "$created_date"}, "/",
                     {"$toString":currDate},"/"
                    ]
                    }
                }
        }
        }
        ],{ allowDiskUse: true })
    }
}```

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    根据$outofficial documentation

    从 MongoDB 4.4 开始,可以指定输出数据库。

    正如您所说,您使用的是 MongoDB 4.2,该功能尚不支持。您可以考虑:

    1. 升级您的 MongoDB
    2. 尝试使用$merge 看看是否有帮助
    3. 使用其他方法导出数据。

    【讨论】:

    • 正如我所写的,我之前已经使用过它并且有效!!!
    • 是否可以复制您的工作设置(即您可以毫无问题地执行命令的设置)?如果是这样,您可能需要在 mongo shell 中执行 db.version() 以检查 2 个设置的版本之间是否存在任何差异。
    【解决方案2】:

    发现了问题,我是从我的 PROD DB 而不是从我的 DATALAKE PROD DB 运行查询。一旦我将其更改为 DATALAKE DB,它就会运行。

    【讨论】:

    • 这是否意味着数据库版本不同?
    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多