关系模式 node.js mongodb
relational schema node.js mongodb
我正在用 Node.js 制作一个 API 用于资金管理应用程序。我的用户模式如下:
const userSchema = new mongoose.Schema({
name: {
type:String,
required: true
},
email:{
type: String,
required: true,
uniqe:true
},
password:{
type:String,
required: true
},
budget:{
type:String ,
required: true
},
currency: {
type: String,
required: true },
spendings: {
type: mongoose.Schema.Types.ObjectId,
ref:'Spendings'},
purchases :{
type: mongoose.Schema.Types.ObjectId,
ref:'Purchases'},
debts: {
type: mongoose.Schema.Types.ObjectId,
ref:'Debts'}
});
module.exports = mongoose.model('User', userSchema);
我想做的是获取所有用户的债务(例如),但我无法弄清楚。我只能使用用户 ID 创建和获取债务。这是我的债务模式:
const debtsSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
debtsName:{
type:String,
required:true
},
price:{
type:Number,
required:true
},
userID: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: true
}
},
{timestamps:true}
);
module.exports = mongoose.model('Debts', debtsSchema);
AuthController
exports.getOneUser = (req, res, next) => {
const id = req.params.userID;
User.findById(id).populate('spendings').populate('debts').populate('purchases')
.then(doc => {
if(doc) {
console.log("From database", doc);
res.status(200).json(doc);
} else {
res.status(404).json({
message: "No data is found by provided ID"
});
}
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
})
}
请注意我是新人o Node.js并详细解释。提前致谢
如果您想获取特定用户的债务数据,请使用 userID 编写有关债务收集的查询。
Debts.find({userID: id})
如果您想要所有用户数据及其相应的债务数据,
User.find({}).populate('debts')
我正在用 Node.js 制作一个 API 用于资金管理应用程序。我的用户模式如下:
const userSchema = new mongoose.Schema({
name: {
type:String,
required: true
},
email:{
type: String,
required: true,
uniqe:true
},
password:{
type:String,
required: true
},
budget:{
type:String ,
required: true
},
currency: {
type: String,
required: true },
spendings: {
type: mongoose.Schema.Types.ObjectId,
ref:'Spendings'},
purchases :{
type: mongoose.Schema.Types.ObjectId,
ref:'Purchases'},
debts: {
type: mongoose.Schema.Types.ObjectId,
ref:'Debts'}
});
module.exports = mongoose.model('User', userSchema);
我想做的是获取所有用户的债务(例如),但我无法弄清楚。我只能使用用户 ID 创建和获取债务。这是我的债务模式:
const debtsSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
debtsName:{
type:String,
required:true
},
price:{
type:Number,
required:true
},
userID: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: true
}
},
{timestamps:true}
);
module.exports = mongoose.model('Debts', debtsSchema);
AuthController
exports.getOneUser = (req, res, next) => {
const id = req.params.userID;
User.findById(id).populate('spendings').populate('debts').populate('purchases')
.then(doc => {
if(doc) {
console.log("From database", doc);
res.status(200).json(doc);
} else {
res.status(404).json({
message: "No data is found by provided ID"
});
}
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
})
}
请注意我是新人o Node.js并详细解释。提前致谢
如果您想获取特定用户的债务数据,请使用 userID 编写有关债务收集的查询。
Debts.find({userID: id})
如果您想要所有用户数据及其相应的债务数据,
User.find({}).populate('debts')