gpt4 book ai didi

postgresql - 预加载 : How to disable specific fields of included table

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

我正在尝试使用 PostgreSQL 在 Sequelize 中执行 Eager Loading,我需要在其中找到具有给定特定 Mail id 或的 Users基本上,我正在对 Mail 模型执行查找操作,同时使用 include 来包含 User 模型

用户模型:

module.exports = function (sequelize, Sequelize) {


var User = sequelize.define('User', {
userId: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
firstname: {
type: Sequelize.STRING,
require: true
},
lastname: {
type: Sequelize.STRING,
require: true
},
age: {
type: Sequelize.INTEGER,
require: true
},
phone: {
type: Sequelize.STRING,
require: true
},
location: {
type: Sequelize.STRING,
require: true
},
createdAt: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW
},
updatedAt: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW
}
});

return User;

};



邮件模型:

module.exports = function (sequelize, Sequelize) {



var User = require('./User.js')(sequelize, Sequelize)


var Mail = sequelize.define('Mail', {
name: {
type: Sequelize.STRING,
require: true
}
});


Mail.belongsTo(User);

return Mail;
};



邮件 Controller :

var db = require('../services/db.js');

module.exports = {
create: function (req, res, next) {

var Mailm = db.MailModel;
var name = req.body;
try {

db.sequelize.sync().then(function () {

Mailm.create(name).then(function (found) {

return res.json({
success: true,
message: found.get({
plain: true
})
});
})

});

} catch (ex) {
res.json({
success: false,
exception: ex
});
return;
}

},
query: function (req, res, next) {

var Mailm = db.MailModel;
var Userm = db.UserModel;
var name = req.body;


var option = {};
option.where = name;
option.include = [{
model: Userm

}];

try {
Mailm.findAll(option).then(function (found) {
console.log(found);
return res.json({
success: true,
message: found
});

});
} catch (ex) {
res.json({
success: false,
exception: ex
});
return;
}
}



};

它以完全正确的方式返回用户表和邮件表的记录。

Output :

{
"success": true,
"message":[
{
"id": 2,
"name": "Mailb2",
"createdAt": "2015-07-30T07:32:51.807Z",
"updatedAt": "2015-07-30T07:32:51.807Z",
"UserUserId": 2,
"User":{
"userId": 2,
"firstname": "Prerna",
"lastname": "Jain",
"age": 20,
"phone": "9812123456",
"location": "Sirsa",
"createdAt": "2015-07-30T07:30:48.000Z",
"updatedAt": "2015-07-30T07:30:48.000Z"
}
}
]
}

但我想禁用 createdAtupdatedAt User 表的字段,这样它就不会给我用户输出中的这两个字段。

我已经尝试了很多关于如何做到这一点,但仍然是徒劳的。任何人都可以帮助我。

最佳答案

我敢打赌这会迟到,将属性/特性添加到您的模型中,称为时间戳,它接受一个 bool 值作为值。例如:

module.exports = function (sequelize, Sequelize) {



var User = require('./User.js')(sequelize, Sequelize)


var Mail = sequelize.define('Mail', {
name: {
type: Sequelize.STRING,
require: true
}
},
{
// This does the magic

timestamps: false,
});


Mail.belongsTo(User);

return Mail;
};

此外,将其添加到用户模型中:

    var User = sequelize.define('User', {
userId: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
firstname: {
type: Sequelize.STRING,
require: true
},
lastname: {
type: Sequelize.STRING,
require: true
},
age: {
type: Sequelize.INTEGER,
require: true
},
phone: {
type: Sequelize.STRING,
require: true
},
location: {
type: Sequelize.STRING,
require: true
},
createdAt: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW
},
updatedAt: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW
}
},
{
timestamps: false
});

return User;

};

关于postgresql - 预加载 : How to disable specific fields of included table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31722834/

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