Я пытаюсь обновить несколько документов в mongodb, который содержит некоторую ненужную строку. Поэтому мне нужно обновить документы с помощью slice
части строки в поле.Mongodb: Обновление документов со срезом значений полей
У меня есть что-то подобное в моем db.
{
"_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)
.
Не уверен, какое условие я должен поставить, чтобы обновить поле в том же документе, нарезая его.
Пожалуйста, помогите.
Спасибо, это сработало! (Tho не так, как ожидалось), но он обновил записи, и теперь мне нужно использовать что-то другое, а не методы выше. – ArchNoob