2017-02-16 122 views
0

我试图更新包含一些不需要的字符串的mongodb中的多个文档。所以我需要用字段中字符串的一部分slice更新文档。Mongodb:使用字段值更新文档

我在我的数据库中有这样的事情。

{ 
    "_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

随着forEach,您可以使用:

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

谢谢你,它的工作! (不像预期的那样),但它更新记录,现在我不得不使用其他方法而不是上面的方法。 – ArchNoob

相关问题