javascript - 在 3 模式上填充 mongoose

标签 javascript node.js mongodb mongoose

我正在尝试填充架构。我已成功填充 2 个架构。但我很难/理解填充 3 模式。

这些是我的架构

成员架构

var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var Schema = mongoose.Schema;

var MemberSchema = new mongoose.Schema({

    full_name : {
        type: String
    },
    current_position : {
        type: String
    },
    position: {
        type: String
    },
    dateStarted : {
        type: String
    },
    is_admin: {
        type: Boolean,
        default : false
    },
    team : {
        type: Schema.Types.ObjectId,
        ref: 'Team'
    },
    account : {
        type: Schema.Types.ObjectId,
        ref : 'Accounts'
    }
});

var Members = module.exports = mongoose.model('Members', MemberSchema);
module.exports.createMember = function(newMember, callback){

    newMember.save(function(err){
        if (err) throw err;
    });

}

帐户架构

var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var Schema = mongoose.Schema;
var Team = require('../model/team');


var AccountSchema = mongoose.Schema({
    account_name:{
        type: String,
        index:true
    },
    account_type:{
        type: String
    },
    website_url:{
        type: String
    },
    description:{
        type: String
    },
    account_owner:{
        type: String
    },
    phone_number:{
        type: String
    },
    industry:{
        type: String
    }
});

var accounts = module.exports = mongoose.model('Accounts', AccountSchema);

module.exports.createAccount = function(newUser, callback){

    newUser.save(function(err){
        if (err) throw err;
    });

}

团队架构

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;

var TeamSchema = new mongoose.Schema({
    team_name : {
        type: String
    },
    dateCreated : {
        type : Date,
        default:function(){
            return Date.now();
        }
    }
});

var Team = module.exports = mongoose.model('Team', TeamSchema);


module.exports.createTeam = function(newTeam, callback){

    newTeam.save(function(err,teamObj){
        if (err) throw err;
        if(teamObj){
            if(typeof callback == 'function'){
                callback(null, teamObj._id); 
            }
        }
    });

}

这是我已经填充的团队架构和成员架构

[
  {
    "_id": "587f276edebe7725c48e7286",
    "full_name": "joel ralph balignasay",
    "position": "Web Developer",
    "dateStarted": "Nov 15 2016",
    "team": {
      "_id": "587f25a98a583e1954908832",
      "team_name": "Web Team",
      "__v": 0,
      "dateCreated": "2017-01-18T08:22:01.541Z"
    },
    "account": "587f210d7729b13554901cf4",
    "__v": 0,
    "is_admin": false
  }
]

这是我的功能

app.get('/admin/accounts/show_team/api/merge', function(req,res){
    var team_id = '587f25a98a583e1954908832';
    var account_id = '587f210d7729b13554901cf4';
    MemberModel.find({}).populate('team').exec(function(err,member){
        Accounts.find({}).populate('account').exec(function(err,acount){
            if (err) {
                console.log(err)
            } else {
                res.json(member);
            }
        });
    });
});

谢谢。我只想知道如何插入帐户架构。 再次感谢

最佳答案

我已经找到了一种方法,这是我的更新功能

app.get('/admin/accounts/show_team/api/merge', function(req,res){
    var team_id = '587f25a98a583e1954908832';
    var account_id = '587f210d7729b13554901cf4';
    var member_id = '587f276edebe7725c48e7286';
    MemberModel.findById(member_id)
        .populate('team')
        .populate('account')
        .exec(function(err,results){
            res.send(results);
        })
});

关于javascript - 在 3 模式上填充 mongoose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714830/

相关文章:

javascript - 未捕获的类型错误 : $scope. mvp.$setUntouched 不是函数 angularjs 1.4

javascript - 如何防止 Sencha Ext.Msg 在按钮单击时关闭

javascript - 图标克隆元素放在错误的位置

javascript - Jplayer - 从 Mysql 结果创建动态播放列表

javascript - 错误 : File to import not found or unreadable: ~bootstrap/scss/bootstrap

node.js - Mongoose 不删除子文档

json - 查看JSON键值

node.js - 在nodejs中从excel中提取图像

javascript - 哪个更糟?多一个数据库访问权限还是一个过时的值?

performance - Mongodb 多重查询或数据库规范化