gpt4 book ai didi

node.js - 如何在 Mongoose 中显示关系?

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:11 24 4
gpt4 key购买 nike

我有两个 Mongoose 模式“用户”和“项目”,我想显示这些模式之间的关系,就像在 mysql 中一样。这个怎么做?创建项目时如何传递用户?

User.js

const mongoose = require('mongoose');
const bcrypt = require('bcrypt-nodejs');
const Schema = mongoose.Schema();

const UserSchema = mongoose.Schema({
fullname: {type: String},
username : {type:String},
password: {type:String}
});

UserSchema.methods.encryptPassword = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(10), null);
};
UserSchema.methods.comparePassword = function(userPassword, cb) {
bcrypt.compare(userPassword, this.password, (err, isMatch) => {
if(err) throw err;
cb(null, isMatch);
});
}
module.exports = mongoose.model('User', UserSchema);

project.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema();
const User = require('./user');

const ProjectSchema = mongoose.Schema({
title: {type: String, required: true},
description: {type:String},
created_at: { type: Date, default: Date.now },
publish : { type: Boolean, default: false}
});

module.exports = mongoose.model('Project', ProjectSchema);

最佳答案

在 Mongoose 中创建模式与在关系型 DBMS(例如 MySQL、PostGreSQL)中创建模式不同。

你可以使用objectId,兄弟。

如果一个项目只能由一个用户处理,您可以使用类似的东西。

userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}

但是如果一个项目是由多个用户处理的

users: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}]

希望对你有帮助

关于node.js - 如何在 Mongoose 中显示关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50316456/

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