我正在尝试填充架构。我已经成功填充了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);
}
});
});
});
感谢。我只是想知道如何插入帐户架构。 再次感谢
答案 0 :(得分:0)
我已经找到了一种方法,这是我的更新功能
CountDownLatch latch = new CountDownLatch(3);
Mono.just(1).subscribe(
i -> latch.countDown(),
throwable -> {},
latch::countDown,
s -> {
s.request(Long.MAX_VALUE);
latch.countDown();
});
boolean success = latch.await(1, TimeUnit.SECONDS);
Assert.assertEquals(true, success);
答案 1 :(得分:0)
您甚至可以限制人口之后所需的字段,例如
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', 'teamField1, teamField2, teamField3..')
.populate('account', 'accountField1, accountField2...')
.exec(function(err,results){
res.send(results);
})
});
_id始终默认出现。 如果您只想要_id,请执行此操作
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', '_id')
.populate('account', '_id')
.exec(function(err,results){
res.send(results);
})
});