【问题标题】:Mongoose model, Can I do this?猫鼬模型,我可以这样做吗?
【发布时间】:2014-03-27 09:19:25
【问题描述】:
var category = mongoose.model('category', {
     text : String,
     todo : {
              text: String,
              done: Boolean
            }
});

我正在使用MEAN 堆栈制作待办事项列表。用户可以添加/删除类别(例如 work /home ),并且在每个类别中都有一个他们可以添加/删除的待办事项列表。这是我应该如何建模数据?

编辑:还有!我会为待办事项进行 API 调用吗?会是... category.todos.find(err, category.todo) { ....}

【问题讨论】:

  • 首先’category' 应该是'category'todo = 应该是todo : 它们是syntax 错误。
  • 糟糕,已修复。那么现在它可以工作了吗?

标签: mongoose


【解决方案1】:

我不认为只有一种离散的方法可以创建模型来满足您的要求,如果我是您,我会执行以下操作:

var mongoose = require('mongoose')
    , Schema = mongoose.Schema;

var TodoSchema = newSchema({
     whattodo : String
     , dueDate :{type:Date, default:Date.now}
});

var CategorySchema = new Schema({
    type:String
    , name : String
    , __some__other__fields__ : __SOME_TYPE__
    , todos : [TodoSchema] //as each category can have multiple todos
});

var Category = mongoose.model('categories', CategorySchema);

module.exports = Category;

另一种方法可能是

创建单独的todo 模型并将reference 存储到category 模型,这类似于在RDBMS 中存储foreign key

【讨论】:

  • 如何使用 mongoose 调用 todos 来访问所有的 todos?
猜你喜欢
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 2010-10-31
  • 2012-02-19
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多