这是我将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",
}
}
答案 0 :(得分:2)
您需要使用聚合管道中的$project
阶段才能实现此目的,如下所示:
db.getCollection('table_name').aggregate([{
$match: {
"key.specificKey": "value"
}
}, {
$project: {
columnName: {
$substr: ["$key", 0, 2]
}
}
}])