gpt4 book ai didi

mysql - sails/水线 : Return model relation

转载 作者:行者123 更新时间:2023-11-29 07:12:29 26 4
gpt4 key购买 nike

因此,我正在使用 SailsJS 创建一个小型应用程序。我的数据库是MySQL。当我测试时,首先我创建一个“市场”记录,然后创建一个链接到“市场”的“股票”记录,在另一时刻,我检索该股票记录。

我有以下型号:

库存型号:

module.exports = {

attributes: {
intern_id: {
type: 'string'
},
tick: {
type: 'string'
},
market: {
model: 'market'
}
}
};

市场模式:

module.exports = {
attributes: {
tick: {
type: 'string'
},
name: {
type: 'string'
},
description: {
type: 'string'
},
stocks: {
collection: 'stock',
via: 'market'
},
}
}

然后,首先我创建一个“市场”并使用返回的对象与我的“股票”对象关联:

创建并获取我的市场记录:

Market.create({tick: 'BVMF', name: 'Bovespa', description: 'Bolsa de Valores'}).exec(function(err, market) {
if(err) done(err);
});

var market = Market.findOne({tick: 'BVMF'}).then(function(results){return results;});

创建我的库存记录:

Stock.create({intern_id: '1234', tick: 'VALE5', description: 'Vale SA', market: market}).exec(function(err, stock) {
if(err) done(err);
});

然后,当我尝试取回这只股票时,即使我调用 populate('market'),也不会检索到市场对象:

Stock.findOne({tick: 'VALE5'}).populate('market').exec(function(err, record) {    
console.log(record);
});

最佳答案

信息不多,但我猜。

相反:

Stock.findOne({tick: 'VALE5'}).populate('market').exec(function(err, record) {    
console.log(marketObj);
});

应该是:

Stock.findOne({tick: 'VALE5'}).populate('market').exec(function(err, record) {    
console.log(record);
});

<罢工>


第二个答案:

你忘记了异步。你应该这样做:

Market.create({tick: 'BVMF', name: 'Bovespa', description: 'Bolsa de Valores'}).exec(function(err, market) {
if(err){
done(err);
} else {
Stock.create({intern_id: '1234', tick: 'VALE5', description: 'Vale SA', market: market.id}).exec(function(err, stock) {
if(err){
done(err);
} else {
Stock.findOne({tick: stock.tick}).populate('market').exec(function(err, record) {
console.log(record); // and there is your "Stock" with populated "market"
});
}
});
}
});

关于mysql - sails/水线 : Return model relation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39133651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com