Javascript 如何从ref对象插入项

Javascript 如何从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

我是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 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)});