如何重构我的数据库?

时间:2016-09-15 13:42:37

标签: mongodb mongoose-schema

我有一个包含嵌入文档的集合。这在文档中更新文档时工作正常,但是当我不得不在文档中更新文档时出现问题。为了完成这项工作,我需要使用双倍的' $'这是不可能的。 这有效:

{$push: {
        "progress.$.exercise":{
            "exercise":exercise
        }
}

这就是问题所在:

{$push: {
        "progress.$.exercise.$.workout":{
            "_set":_set, 
            "reps":reps,
            "weight":weight
        }
    }

因为dobbel $无法完成,似乎没有办法(我能找到)用elemMatch来完成它。我只能得出结论,我构建数据库的方式是错误的....

以下是我的架构:

var Workout = new mongoose.Schema({
    _set : {
        type: String
    },
    reps: {
        type: String
    },
    weight: {
        type: String
    }
});


var Exercise = new mongoose.Schema({
    exerciseName : {
        type: String
    },
    workout : [Workout]
});


var Progress = new mongoose.Schema({
    date : {
        type: String
    },
    name : {
        type: String
    },
    exercise : [Exercise]
});


var UserSchema = mongoose.Schema({
    username: {
        type: String,
        index:true
    },
    password: {
        type: String
    },
    email: {
        type: String
    },
    name: {
        type: String
    },
    progress : [Progress]

});


var User = module.exports = mongoose.model('User', UserSchema);

似乎我需要重构我的数据库,如果是这样我应该怎么做? 我需要制作更多收藏品吗? 我已经习惯了关系型数据库,如果我在哪里制作所有这些的集合,它就会开始看起来像那样。

0 个答案:

没有答案