【问题标题】:Update MongoDB collection toLowercase for array field将 MongoDB 集合更新为数组字段的小写
【发布时间】:2017-03-10 03:35:07
【问题描述】:

这两个帖子我已经看过了

Update MongoDB collection using $toLower

To loop through non associative array in mongoDB

但那些对我没有帮助。

我有一个包含几个这样的文档的集合:

{
"_id": "58bda97de000ae205f77c6e0",

"artistName": "ABC",

"trackNames": [
"1A",
"1B",
"1C",
"1D"
],
}

我想将 trackNames 字段的所有值更改为小写。像这样:

{
    "_id": "58bda97de000ae205f77c6e0",

    "artistName": "ABC",

    "trackNames": [
    "1a",
    "1b",
    "1c",
    "1d"
    ],
    }

直到现在我都这样尝试:

db.artist.find().forEach(function(e) {
e.trackNames.forEach(function(i){
i=i.toLowerCase();
db.artist.save(e)})})

但它不起作用。请帮忙。

【问题讨论】:

    标签: javascript node.js mongodb


    【解决方案1】:

    i = i.toLowerCase() 实际上并不更新对象。相反,您可以用地图替换数组本身:

    e.trackNames = e.trackNames.map(function (trackName) {
      return trackName.toLowerCase();
    });
    

    这将更新原始对象上的 trackNames 数组,然后您可以保存该数组。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    相关资源
    最近更新 更多