我在node.js中使用mongodb连接mongoose。我有以下简单的集合架构:
var calEventSchema = mongoose.Schema({
"_userId" : { type: mongoose.Schema.Types.ObjectId, ref: 'PanelUser' },
"task" : String,
"startTime" : Date,
"endTime" : Date
});
exports.CalEvent = mongoose.model('CalEvent', calEventSchema);
现在我想向CalEvent添加一个'category'属性,以便数据看起来像这样:
{
"_id": "AAA",
"_userId": "BBB",
"task": "Meeting with Bob",
"startTime": "2016-04-12T06:00:00.000Z",
"endTime": "2016-04-12T08:30:00.000Z",
"category" : "meeting"
}
我对该类别的选择可能是['会议','假期','公务员','非现场']。当用户创建事件时,他应该获得所有可供选择的类别选项(例如,下拉列表)。更多:高级用户应该能够扩展类别。
我想到了一些方法,但我对其中任何一方都不满意:
有更好的方法吗?
答案 0 :(得分:1)
通常,如果修复枚举值,则可以使用upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int child=listView.getChildCount();
for(int i=0;i<child;i++) {
View rgg=listView.getChildAt(i);
radioGroup = (RadioGroup) rgg.findViewById(R.id.radio);
int selectedId=radioGroup.getCheckedRadioButtonId();
radioButton = (RadioButton) rgg.findViewById(selectedId);
}
}
});
解决此问题。
然后你的模型就像:
enum
但是,如果您想扩展或减少 var calEventSchema = mongoose.Schema({
"_userId" : { type: mongoose.Schema.Types.ObjectId, ref: 'PanelUser' },
"task" : String,
"startTime" : Date,
"endTime" : Date,
"category:{
type: String,
default: 'meeting', // if you want to set as default value
enum:['meeting', 'vacations', 'civil service', 'offsite']
}
});
exports.CalEvent = mongoose.model('CalEvent', calEventSchema);
选项动态,那么最好再创建另一个模型适用于category
并引用所选类别,例如category