如何在mongodb中使用substr函数?

时间:2018-02-08 15:35:12

标签: mongodb match substr

这是我将mongo中的数据导入到oracle中的表的解决方案,如果有更好的方法,我也会很感激。

我目前的查询是:

db.getCollection('table_name').find({"key.specificKey": "value"})

我想要做的是选择要显示的特定子字符串。我尝试使用mongodb docs中的substr函数。但这不适合我。

db.getCollection('table_name').aggregate({columnName: {$substr: ["$key", 0, 2]}})

我也尝试使用建议here的匹配功能。但那也没有用。

db.getCollection('table_name').aggregate($match: {"key.specificKey": "value"}, {columnName: {$substr: ["$key", 0, 2]}})

有人可以更正我的语法来执行此操作吗?如果重要的话,我正在使用robomongo。

示例数据:

{
    "_id" : ObjectId("hey"),
    "key" : {
        "keyId" : NumberLong(1234),
        "keyName" : "valueName",
    }
}

1 个答案:

答案 0 :(得分:2)

您需要使用聚合管道中的$project阶段才能实现此目的,如下所示:

db.getCollection('table_name').aggregate([{
    $match: {
        "key.specificKey": "value"
    }
}, {
    $project: {
        columnName: {
            $substr: ["$key", 0, 2]
        }
    }
}])