Javascript 如何从ref对象插入项
我是node.js、mongodb和mongoose的新手。我对猫鼬上的ref对象有点问题 这是我的密码 admin.jsJavascript 如何从ref对象插入项,javascript,node.js,mongodb,mongodb-query,Javascript,Node.js,Mongodb,Mongodb Query,我是node.js、mongodb和mongoose的新手。我对猫鼬上的ref对象有点问题 这是我的密码 admin.js router.post('/accounts/show_account/team/add_member/:account_id/:team_id', function(req,res){ var account_id = req.params.account_id; var team_id = req.params.team_id; var fu
router.post('/accounts/show_account/team/add_member/:account_id/:team_id', function(req,res){
var account_id = req.params.account_id;
var team_id = req.params.team_id;
var full_name = req.body.full_name;
var position = req.body.position;
var dateStarted = req.body.dateStarted;
var errors = req.validationErrors();
if (errors) {
// res.render('register',{errors:errors});
console.log('errors');
} else{
var newMember = new Members({
full_name : full_name,
position : position,
dateStarted : dateStarted
});
newMember.save(function(err,member){
if (err) {
console.log(err);
} else {
console.log(member);
}
});
}
});
model.js->schema
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var Schema = mongoose.Schema;
var MemberSchema = mongoose.Schema({
full_name : {
type: String
},
current_position : {
type: String
},
dateStarted : {
type: String
},
is_admin: {
type: Boolean,
default : false
}
});
var member = module.exports = mongoose.model('Members', MemberSchema);
module.exports.createMember = function(newMember, callback){
newMember.save(function(err){
if (err) throw err;
});
}
team.js->team模式
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var Schema = mongoose.Schema;
var TeamSchema = mongoose.Schema({
team_name: {
type: String
},
date_created: {
type: Date
},
members: [{
type: mongoose.Schema.Types.ObjectId,
ref : member
}]
});
var Team = module.exports = mongoose.model('Team', TeamSchema);
module.exports.createTeam = function(newTeam, callback){
newTeam.save(function(err){
if (err) throw err;
});
}
我正在尝试加入团队架构和成员架构,但我不知道如何操作。您应该将与架构相关的名称添加为字符串
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var Schema = mongoose.Schema;
var TeamSchema = mongoose.Schema({
team_name: {
type: String
},
date_created: {
type: Date
},
members: [{
type: mongoose.Schema.Types.ObjectId,
ref : "Members"
}]
});
var Team = module.exports = mongoose.model('Team', TeamSchema);
module.exports.createTeam = function(newTeam, callback){
newTeam.save(function(err){
if (err) throw err;
});
}
现在,您可以在执行serch时使用[populate][1]
函数“加入”模式
如果需要在TeamSchema文档中插入新成员,只需添加新成员的_id即可
var newMebers=新成员({…});
newMembers.save()
.then(功能(新成员){
返回TeamSchema.findById(,
{$push:{成员:新成员。_id});
})
.catch(函数(err){console.error(err)});
在ref
中,您应该输入“成员”
模型的名称。我想我已经在ref中添加了“成员”模型。您能指出我的错误吗?您输入了对成员模型的引用。而只需将模型的名称作为字符串。ref:“成员”
var newMebers = new Members({...});
newMembers.save()
.then(function(newMember){
return TeamSchema.findById(<TeamId>,
{$push:{members:newMember._id});
})
.catch(function(err){ console.error(err)});