我正在尝试更新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/0113
,schoolNumber
包含"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)
。
不确定我应该放什么条件,以便通过切片来更新同一文档中的字段。
请帮忙。
答案 0 :(得分:1)
使用forEach
,您可以使用:
db.results.find().forEach(
function(e) {
e.studentNumber = e.studentNumber.split('/').slice(1).toString();
db.results.save(e);
})