2017-02-16 142 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

相關問題