如何为给定的集合定义mongoose模式?

时间:2016-02-08 10:02:33

标签: node.js mongodb mongoose mongoose-schema

{
    "_id" : ObjectId("56b84dab9f973b3cd5f52c8c"),
    "userid" : "abcde",
    "dates" : {
        "2-01-2015" : {
            "9-10" : {
                "ava" : "no",
                "bookibg_id" : "null"
            },
            "10-11" : {
                "ava" : "no",
                "bookibg_id" : "null"
            }
        },
        "3-01-2015" : {
            "9-10" : {
                "ava" : "no",
                "bookibg_id" : "null"
            },
            "10-11" : {
                "ava" : "no",
                "bookibg_id" : "null"
            }
        }
    }
}
{
    "_id" : ObjectId("56b84ed19f973b3cd5f52c8d"),
    "userid" : "abcde",
    "dates" : {
        "2-01-2015" : {
            "9-10" : {
                "ava" : "no",
                "bookibg_id" : "null"
            },
            "10-11" : {
                "ava" : "no",
                "bookibg_id" : "null"
            }
        },
        "3-01-2015" : {
            "9-10" : {
                "ava" : "no",
                "bookibg_id" : "null"
            },
            "10-11" : {
                "ava" : "no",
                "bookibg_id" : "null"
            }
        }
    }
}
{
    "_id" : ObjectId("56b84ed19f973b3cd5f52c8e"),
    "userid" : "abcde",
    "dates" : {
        "2-01-2015" : {
            "9-10" : {
                "ava" : "no",
                "bookibg_id" : "null"
            },
            "10-11" : {
                "ava" : "no",
                "bookibg_id" : "null"
            }
        },
        "3-01-2015" : {
            "9-10" : {
                "ava" : "no",
                "bookibg_id" : "null"
            },
            "10-11" : {
                "ava" : "no",
                "bookibg_id" : "null"
            }
        }
    }
}

所以这只是一个简短的版本,会有很多日期和时间段。我想在mongoose中定义模式,以便我可以查询db.How应该是模式,因为我很困惑如何概括每个日期。 并且在定义的模式中如何编写查询以在特定时间段更改特定日期的avalabilty?

1 个答案:

答案 0 :(得分:0)

只有一种可能的解决方案..

var XY = new mongoose.Schema({
             userId: {type: String, required: true},
             dates: [{type: String, ref: 'Date' }]
 })

 var Date = new mongoose.Schema({
             timestamp: {type: Date, required: true},
             timeSlots: [{type: String, ref: 'TimeSlot'}]
 })

 var TimeSlot = new mongoose.Schema({
             startHour: {type: Number, required: true},
             endHour: {type: Number, required: true},
             ava: {type: String},
             bookibg_id: {type: String}
 })