我在nodejs中有一个项目,使用mongodb数据库,我想为另一个客户创建一个全新的项目部署,所以我需要相同的数据库结构,没有旧数据。我应该怎么做?我必须手动创建所有集合,还是有一种方法可以只编写数据库模式的脚本?
vohkndzv1#
我总是喜欢使用MVC模式。我将与您分享我的模型文件中的一个,以了解如何编写可重用的数据库模式代码。
const expenseCollection = require('../db').db().collection("expenses"); const ObjectID = require('mongodb').ObjectID const Money = require('./Money') let Expense= function(data, userId){ this.data = data, this.authorId = new ObjectID(userId) this.errors =[] } //MAZZA BELOW ARE THE FIELDS MENTIONED THAT YOU MAY WANT TO HAVE IN YOUR SCHEMA Expense.prototype.cleanUp = function(){ this.data ={ amount: Number(this.data.amountSpent), item: this.data.item, purchaseDate: new Date(this.data.purchaseDate), notes: this.data.notes, status: false, expType: this.data.expType, authorId : this.authorId, } }
模块导出=费用另外,我将与你分享如何在这个构造函数中传递数据。(来自控制器文件的一个)
const moneyController = require('./moneyController') const Expense = require('../models/Expense') exports.saveExpense = async function(req, res){ let data = { balance:0, } let money = new Money(data) await money.addMoney(req.session.user_id) await money.subtractBal(req.body.amountSpent, req.session.user._id ) //MAZZA FOCUS ON THE BELOW LINE: let expense = new Expense(req.body, req.session.user._id) await expense.saveExpense() res.redirect('/') }
首先,模型将是一个文件,您可以在其中编写可重用的模式脚本。考虑为每个集合创建单独的模型,即1个集合=代码中的1个新模型。另外,在我与您分享的上述代码中,即使mongodb中还不存在集合,它也会自动创建集合。
1条答案
按热度按时间vohkndzv1#
我总是喜欢使用MVC模式。
我将与您分享我的模型文件中的一个,以了解如何编写可重用的数据库模式代码。
模块导出=费用
另外,我将与你分享如何在这个构造函数中传递数据。(来自控制器文件的一个)
首先,模型将是一个文件,您可以在其中编写可重用的模式脚本。
考虑为每个集合创建单独的模型,即1个集合=代码中的1个新模型。
另外,在我与您分享的上述代码中,即使mongodb中还不存在集合,它也会自动创建集合。