【发布时间】:2015-07-14 03:38:41
【问题描述】:
我有以下代码,可以找到所有包含输入电子邮件地址的成员的项目。这个想法是它搜索 NFtest@test.com(作为示例)并将其更改为他们输入的名称。
有问题的代码
Project.find({ _members: req.body.email }, function(err, projects) {
for (var i = 0, len = projects.length; i < len; i++) {
for (var x = 0, lent = projects[i]._members.length; x < lent; x++) {
if (projects[i]._members[x] == ["NF" + req.body.email]) {
console.log("FOUND MATCH")
projects[i]._members[x].value = req.body.alias
projects[i].save()
}
}
}
控制台日志告诉我已找到匹配项,但数组中的值从未更新。我想知道是否有正确的方法来更改数组中的值,而不仅仅是使用 = 运算符。还是我没有正确保存文档?
示例项目文档
"_id" : ObjectId("5546"),
"name" : "Test project",
"description" : "This is a sample description",
"archived" : false,
"admins" : [
"test@test.com"
],
"_members" : [
"membertoupdate@test.com",
"NFmembertoupdate@test.com"
],
"updated" : ISODate("2015=05=04T04:52:22:787Z")
这个想法是用一个名字更新 NFmembertoupdate@test.com。此名称来自 req.body.alias。
控制台告诉我找到了一个匹配项并且没有抛出任何错误,但是没有进行更新。
【问题讨论】:
-
你能给我们展示一些示例文件和预期的输出吗?