【发布时间】:2019-05-31 15:39:54
【问题描述】:
我有两个用于用户和待办事项的架构。每个待办事项都有一个所有者作为用户,每个用户都有一个待办事项数组。
// user.js
const TodoSchema = require('./todo').TodoSchema;
var UserSchema = mongoose.Schema({
name: {
type: String,
required: true
},
todos: {
type: [TodoSchema]
}
});
module.exports.UserSchema = UserSchema;
module.exports.UserModel = mongoose.model('UserModel', UserSchema);
// todo.js
var TodoSchema = mongoose.Schema({
body: {
type: String, required: true
},
owner: {
type: mongoose.Schema.Types.ObjectId,
ref: 'UserModel',
required: true
}
});
module.exports.TodoSchema = TodoSchema;
module.exports.TodoModel = mongoose.model('TodoModel', TodoSchema);
我输入了这样的数据。
var nUser = new UserModel({
name: "Alex
)};
nUser.save().then(user => {
var t = new TodoModel({
body: "my new todo",
owner: user._id
});
t.save().then();
});
但问题是我想从特定用户那里获取所有待办事项,例如......正确的方法是什么?
UserModel.findOne({name: "Alex"})
.then(user => {
// user.todos
});
附: 我可以像 TodoModel.find({owner: specific_user._id}) 一样执行此操作,但我希望来自 UserModel。
【问题讨论】:
标签: javascript node.js database mongodb mongoose