将mongodb集合中的字符串更改为大写

时间:2016-11-01 20:42:35

标签: mongodb

我经常搜索,但仍无法找到(或理解)答案。我的mongodb数据库中有一个名为" btest"的集合。在该集合的内部,我有一个随机生成的字符串列表(从1000到1000000),看起来像这样:

> db.btest.find()
{ "_id" : ObjectId("5818ed42c33b12a7c902cd34"), "0" : 1, "wgickjkwxfimleot" : "r
scjuvarvmvuheom" }
{ "_id" : ObjectId("5818ed42c33b12a7c902cd35"), "0" : 2, "wgickjkwxfimleot" : "t
gdqnegjscsmnjsi" }
{ "_id" : ObjectId("5818ed42c33b12a7c902cd36"), "0" : 4, "wgickjkwxfimleot" : "d
qjvndthelmtqknj" }
{ "_id" : ObjectId("5818ed42c33b12a7c902cd37"), "0" : 5, "wgickjkwxfimleot" : "u
qtmbuhgwxntcixh" }
{ "_id" : ObjectId("5818ed42c33b12a7c902cd38"), "0" : 6, "wgickjkwxfimleot" : "i
rguwjvectjvimjk" }
{ "_id" : ObjectId("5818ed42c33b12a7c902cd39"), "0" : 7, "wgickjkwxfimleot" : "n
sggjpodfvebjumk" }
{ "_id" : ObjectId("5818ed42c33b12a7c902cd3a"), "0" : 8, "wgickjkwxfimleot" : "a
wvjtlxtoqwpdltp" }

我使用此命令导入了这些:

mongoimport -d ee_db -c btest --type csv --file "C:\Users\USER\Desktop\Random\projekty java\ee_bulk_insert\src\10000.csv" --headerline

我想要做的是将此集合中的所有字符串更改为大写字母。在MySQL中,我使用"SELECT UCASE(row) FROM btest;"命令做了同样的事情。

如何在MongoDB中实现相同的结果?谢谢你的所有答案。

1 个答案:

答案 0 :(得分:0)

您可以使用$project聚合,使用$toUpper将字符串转换为大写,然后将结果写入包含$out的新集合中:

db.btest.aggregate(
    [{
        $project: {
            "0": 1,
            "wgickjkwxfimleot": { $toUpper: "$wgickjkwxfimleot" }
        }
    }, {
        $out: "results"
    }]
)