Mongoose更新数组属性

时间:2015-12-22 15:50:21

标签: arrays node.js mongodb mongoose

我正在尝试通过Mongoose更新文档,但它不会更新数组属性。 这是一个示例文档:

{
    "_id" : "55da477a9bfc910e38zzccf2",
    "projectname" : "ASong",
    "owner" : "adam",
    "tracks" : [{
            "name" : "Bass",
            "file" : "upload/Bass.mp3",
            "volume" : "0.75",
            "pan" : "0.65"
        }, {
            "file" : "upload/Drums.mp3",
            "volume" : "0.4",
            "pan" : "-0.75",
            "name" : "Drums"
        }
    ],
    "users" : ["adam", "eve"]
}

如果我将一个对象传递给Mongoose并尝试使用它来更新如下:

var id = req.body._id;
    var editedProject = req.body;
    delete editedProject._id;
    console.log("TRACKS: " +JSON.stringify(editedProject.tracks));
    Project.update({"_id": id}, editedProject, {"upsert": true}, function(err, proj) {
        if (err) {
            res.send(err);
        }
        res.json(proj);
    });

仅更新第1级属性,但不更新数组。

我发现了一些涉及循环遍历数组元素并为每个元素调用更新的解决方案,但我想避免这种情况,并将更新保留为单个操作。

或者避免使用数组更好吗?

0 个答案:

没有答案