【发布时间】:2014-08-16 19:53:36
【问题描述】:
我目前正在尝试为带有文档引用的架构创建 .post 函数。但是,我不确定如何从另一个集合中检索文档引用的 ObjectID。
Board.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BoardSchema = new Schema({
boardname: String,
userid: {type: Schema.ObjectId, ref: 'UserSchema'}
});
module.exports = mongoose.model('Board', BoardSchema);
用户.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
username: String
});
module.exports = mongoose.model('User', UserSchema);
routes.js
router.route('/boards')
.get(function(req, res) {
Board.find(function(err, boards) {
if(err)
res.send(err);
res.json(boards);
});
})
.post(function(req, res) {
var board = new Board();
board.boardname = req.body.boardname;
User.find({username: req.body.username}, function(err, user) {
if(err)
res.send(err);
board.userid = user._id;
});
board.save(function(err) {
if(err)
res.send(err);
res.json({message: 'New Board created'});
});
});
为了创建版块,我在请求中包含版块名称和用户名。使用用户名,我执行 User.find 来查找特定用户并将其分配给 board.userid。但是,这似乎不起作用,因为 board.userid 没有出现。
任何帮助将不胜感激!
谢谢!
编辑
对所需内容的更好解释是我有一个现有的用户集合。当我想向 Board 中添加一个新文档时,我会提供一个用户名,从中搜索 User 集合,获取特定用户的 ObjectId 并将其作为 userid 添加到 Board 文档中。
【问题讨论】:
标签: javascript node.js mongodb express mongoose