Mongodb:使用一片字段值更新文档

时间:2017-02-16 22:43:08

标签: mongodb

我正在尝试更新mongodb中包含一些不需要的字符串的多个文档。因此,我需要在字段中使用slice部分字符串更新文档。

我的数据库中有这样的东西。

{
    "_id" : ObjectId("58a04a6c377c443a3af3dbf9"),
    "studentNumber" : "S1859/0113",
    "gender" : "M",
    "studentName" : "Had To change this",
    "points" : "34",
    "division" : "FLD",
    "subjects" : "CIV-D   HIST-F   GEO-F   KISW-F   ENGL-F   BIO-F   B/MATH-F",
    "examType" : "CSEE",
    "examYear" : "2011",
    "schoolNumber" : "S1859",
    "schoolName" : "CHANGED SECONDARY SCHOOL",
    "__v" : 0

}

请注意,studentNumber字段包含S1859/0113schoolNumber包含"S1859"。现在,我需要将S1859字段中的文字studentNumber切片为0113

我试过

db.results.find().forEach(function(e) { e.studentNumber = e.studentNumber.split('/').slice(1); e.save() })

但是这给出了一个错误e.save()不是一个函数。

我不确定如何做到这一点:

db.results.update({studentNumber: {$regex: /[PS]{1}[0-9]{4}\/[0-9]{4}/}}, {condition to use}, false, true)

不确定我应该放什么条件,以便通过切片来更新同一文档中的字段。

请帮忙。

1 个答案:

答案 0 :(得分:1)

使用forEach,您可以使用:

db.results.find().forEach(
    function(e) {
        e.studentNumber = e.studentNumber.split('/').slice(1).toString();
        db.results.save(e);
    })