0xS*_*ina 3 javascript mongoose mongodb node.js
我有MongooseJS架构如下:
var UserSchema = new Schema({
name : String,
app_key : String,
app_secret : String,
tasks : [{ type : Schema.ObjectId,
ref : 'Task'}]
})
var ActionSchema = new Schema({
name : String,
description : String,
module : String
})
var enumTaskState = ['New', 'Indexing', 'Idle', 'In Queue', 'Working'];
var TaskSchema = new Schema({
name : String,
lastPerformed : Date,
folder : String,
actions : [{type : Schema.ObjectId,
ref : 'Task'}],
user : { type : Schema.ObjectId,
ref : 'User'},
status : { type : String,
enum : enumTaskState,
default : 'New'}
})
Run Code Online (Sandbox Code Playgroud)
问题是,当我设置任务的用户时,我是否必须手动转到用户并在那里添加任务?这似乎是额外的工作(冗余),mongoosejs中是否有一个选项可以让我指定它将自己处理所有事物的关系?谢谢.
MongoDB不是关系数据库,它是基于文档的数据库.
您可以通过查询TaskSchema并查找所需的用户来获取用户的任务列表.只需确保添加一个索引,这将是一个快速查询:
user: {type: Schema.ObjectId, ref: 'User', index: true}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |