问题描述
问题陈述
我无法在 Mongoose 的 model.db.db.admin().command()
方法中运行 MongoDB 命令。它给了我错误:UnhandledPromiseRejectionWarning: MongoError: no such command: '0'
我的尝试
SyntaxError: Unexpected token,expected ";" (1:15)
mongoexport -c appointment -o appointments_2021_04_10_9_52.json
请注意:我对 Mongoose/NodeJS 和 MongoDB 还很陌生。另外,我在本地运行 MongoDB。
我的代码 (app.js)
app.get('/exportAllAppoinments',(req,res) => {
mongoose.connect(mongoUrl,{ useNewUrlParser: true,useUnifiedTopology: true }).then(() => {
const dateTime = moment().format('yyyy_mm_dd_hh_mm');
console.log(dateTime);
modelAppointment.db.db.admin().command('mongoexport --collection=appointment --out=appointments_' + dateTime + '.json').then(result => {
console.log(result);
});
},err => console.log(err)
);
});
预期结果
Mongoose 应该导出整个集合并将文件发送回前端。
实际结果
解决方法
modelAppointment.db.db.admin().command()
用于向 MongoDB 提交 database command。
mongoexport 是命令行工具,不是数据库命令。
您可以尝试使用 child_process 中的 exec
来运行命令。