Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将MongoDB集合更新为数组字段的小写_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 将MongoDB集合更新为数组字段的小写

Javascript 将MongoDB集合更新为数组字段的小写,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我已经看过这两篇文章了 及 但是这些对我没有帮助 我收集了一些文件,如: { "_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

我已经看过这两篇文章了

但是这些对我没有帮助

我收集了一些文件,如:

{
"_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)})})
我想将trackNames字段的所有值更改为小写。如下所示:

{
    "_id": "58bda97de000ae205f77c6e0",

    "artistName": "ABC",

    "trackNames": [
    "1a",
    "1b",
    "1c",
    "1d"
    ],
    }
到目前为止,我一直这样尝试:

{
"_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)})})
但它不起作用。请帮助。

i=i.toLowerCase()
实际上并不更新对象。相反,您可以使用映射替换阵列本身:

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

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

谢谢。这很有帮助。我以前从未用过地图。需要学习的新内容。@Arijit
.map
迭代数组并返回一个新数组,其中包含从回调返回的值。